>백엔드 개발 >Golang >Go 테스트에서 디버깅 정보를 어떻게 인쇄합니까?

Go 테스트에서 디버깅 정보를 어떻게 인쇄합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-04 00:02:10847검색

How Do I Print Debugging Information in Go Tests?

"testing" 패키지를 사용하여 Go 테스트 로그인

Go 테스트를 작성할 때 디버깅 목적으로 정보를 인쇄하려는 경우가 있을 수 있습니다. 그러나 단순히 테스트 함수 내에서 fmt.Println을 호출하면 가시적인 출력이 생성되지 않습니다.

기본적으로 테스트에서 fmt.Println 문의 출력은 억제됩니다. 이러한 출력을 표시하려면 Testing.T 구조에서 제공하는 .Log 또는 .Logf 메서드를 사용해야 합니다.

.Log 및 .Logf 사용

fmt.Print 및 fmt.Printf와 유사합니다. , .Log 및 .Logf를 사용하면 형식화된 출력을 인쇄할 수 있습니다. 예를 들어 다음을 사용하는 대신 다음을 사용해야 합니다.

func TestPrintSomething(t *testing.T) {
    fmt.Println("Say hi")
}

자세한 내용으로 출력 보기

func TestPrintSomething(t *testing.T) {
    t.Log("Say hi")
}
.Log를 사용하는 경우에도 출력이 표시되지 않을 수 있습니다. go test를 실행할 때 -v(verbosity) 플래그를 제공하지 않는 한. 이 플래그는 다음 구문을 사용하여 지정할 수 있습니다.

-v 플래그를 추가하면 .Log 문의 출력이 콘솔에 표시됩니다.

go test -v your_test_file.go
인쇄 문이 숨겨진 이유

fmt.X 인쇄 문은 실제로 테스트 내에서 작동합니다. 그러나 테스트 결과는 인쇄되기 전에 Go 테스트 인프라에서 처리되기 때문에 일반적으로 해당 출력이 예상 위치에 표시되지 않습니다. 반면 .Log 메소드는 테스트 환경 내에서 형식화된 출력을 표시하도록 특별히 설계되었으며 상세 플래그를 사용하여 제어할 수 있습니다.

위 내용은 Go 테스트에서 디버깅 정보를 어떻게 인쇄합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.