ホームページ >バックエンド開発 >Golang >Go テストで「fmt.Println()」が機能しないのはなぜですか?デバッグ情報を出力するにはどうすればよいですか?

Go テストで「fmt.Println()」が機能しないのはなぜですか?デバッグ情報を出力するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 19:17:10139ブラウズ

Why Doesn't `fmt.Println()` Work in Go Tests, and How Can I Print Debugging Information?

「testing」パッケージを使用した Go テストの印刷

失敗したテストのトラブルシューティングを行っており、デバッグ用に print ステートメントを追加したいと想像してください。 , しかし、テストを実行しても何も表示されません。それはなぜですか?

Go では、組み込みの fmt.Println() ステートメントがテスト内で期待どおりに機能しません。代わりに、「testing」パッケージは、印刷のための代替メソッドを提供します。

構造体 testing.T および testing.B には、fmt.Print および fmt.Printf と同様の機能を提供する .Log メソッドと .Logf メソッドがあります。これらのメソッドを使用すると、テスト内でステートメントを出力できます。

例:

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

ただし、これらのメソッドを使用した場合でも、出力がすぐに表示されない場合があります。ログ メッセージを表示するには、テストの実行時に -v フラグ (冗長性を高めるため) を指定する必要があります。

go test -v

-v フラグを使用すると、ログ メッセージがテスト結果と一緒に出力され、次のようになります。必要なデバッグ情報が得られます。

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

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