Go テストを作成するとき、デバッグ目的で情報を出力したい場合があるかもしれません。ただし、テスト関数内で fmt.Println を呼び出すだけでは、表示される出力は生成されません。
デフォルトでは、テスト内の fmt.Println ステートメントからの出力は抑制されます。このような出力を表示するには、testing.T 構造体によって提供される .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 ステートメントからの出力がコンソールに表示されます。
fmt.X print ステートメントはテスト内で実際に機能します。ただし、テスト結果は印刷される前に Go テスト インフラストラクチャによって処理されるため、通常、その出力は予期した場所に表示されません。一方、.Log メソッドは、テスト環境内でフォーマットされた出力を表示するように特別に設計されており、詳細フラグを使用して制御できます。
以上がGo テストでデバッグ情報を出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。