>백엔드 개발 >Golang >로깅을 사용하여 Go 테스트를 효과적으로 디버깅하는 방법은 무엇입니까?

로깅을 사용하여 Go 테스트를 효과적으로 디버깅하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-20 18:28:11951검색

How to Effectively Debug Go Tests Using Logging?

로깅으로 Go 테스트 디버깅

Go 테스트를 작성할 때 디버깅 목적으로 명령문을 인쇄할 수 있습니다. 그러나 일반 프로그램과 달리 테스트 내부의 인쇄는 화면에 직접 나타나지 않습니다.

testing.T.Log 및 Testing.T.Logf 사용

테스팅 패키지에서는 T.Log 및 T를 제공합니다. .Logf 메서드는 각각 fmt.Print 및 fmt.Printf와 동일합니다. 이러한 메소드는 테스트를 실행할 때 -v(verbose) 플래그를 사용하여 액세스할 수 있는 특정 버퍼로 로그를 보냅니다.

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

go test -v를 사용하여 실행하면 다음과 같습니다. 테스트 결과는 다음과 같습니다.

=== RUN   TestPrintSomething
Say hi
--- PASS: TestPrintSomething (0.00s)

fmt.Print와의 차이점

fmt.Print 문은 콘솔에 직접 나타나고 T.Log 및 T.Logf 로그는 버퍼링됩니다. 이는 다음을 의미합니다.

  • 성공적인 테스트에 대한 로그는 -v 플래그가 사용될 때만 표시됩니다.
  • 실패한 테스트에 대한 로그는 -v 플래그에 관계없이 항상 표시됩니다.

결론

Go 테스트에서 명령문을 인쇄하려면 Testing.T.Log를 사용하거나 fmt.Print 대신 test.T.Logf. 이렇게 하면 로그가 올바른 버퍼로 전달되고 적절하게 표시됩니다.

위 내용은 로깅을 사용하여 Go 테스트를 효과적으로 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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