1. ホーム
  2. テスティング

[解決済み】"testing "パッケージを使用したGoテストで印刷するにはどうすればいいですか?

2022-04-22 19:54:31

質問

Go でテストを実行し、何かを印刷するステートメントを使用していますが(つまりテストのデバッグ用)、何も印刷されません。

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

このファイルに対して go test を実行すると、次のような出力が得られます。

ok      command-line-arguments  0.004s

私の知る限り、本当にそれを印刷させる唯一の方法は、次のように t.Error() を介して印刷することです。

func TestPrintSomethingAgain(t *testing.T) {
    t.Error("Say hi")
}

と出力されます。

Say hi
--- FAIL: TestPrintSomethingAgain (0.00 seconds)
    foo_test.go:35: Say hi
FAIL
FAIL    command-line-arguments  0.003s
gom:  exit status 1

ググったり、マニュアルに目を通したりしましたが、何も見つかりませんでした。

解決方法を教えてください。

構造体 testing.T testing.B は、どちらも .Log .Logf というメソッドがあるのですが、これはあなたが探しているものだと思います。 .Log そして .Logf fmt.Print fmt.Printf をそれぞれ作成します。

詳細はこちらをご覧ください。 http://golang.org/pkg/testing/#pkg-index

fmt.X プリント文 する はテスト内で動作しますが、その出力はおそらく期待した画面には表示されないでしょう。 testing .

今回のように、失敗していないテストのログを見たい場合は go test その -v フラグ(vは冗長性)を指定します。フラグのテストに関する詳細は、こちらをご覧ください。 https://golang.org/cmd/go/#hdr-Testing_flags