ホームページ >バックエンド開発 >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 (冗長性) フラグを指定しない限り。このフラグは、次の構文を使用して指定できます。

go test -v your_test_file.go

-v フラグを追加すると、.Log ステートメントからの出力がコンソールに表示されます。

Print ステートメントが非表示になる理由

fmt.X print ステートメントはテスト内で実際に機能します。ただし、テスト結果は印刷される前に Go テスト インフラストラクチャによって処理されるため、通常、その出力は予期した場所に表示されません。一方、.Log メソッドは、テスト環境内でフォーマットされた出力を表示するように特別に設計されており、詳細フラグを使用して制御できます。

以上がGo テストでデバッグ情報を出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。