パッケージのテスト ケースは複数のファイルに分散しており、実行するとgo test <package_name>
パッケージ内のすべてのテスト ケースが実行されます。
ただし、すべてを実行する必要はありません。go test
実行するファイルを指定して、そのファイルで定義されているテスト ケースのみを実行する方法はありますか?
ベストアンサー1
方法は 2 つあります。簡単な方法は、-run
フラグを使用して、実行するテストの名前に一致するパターンを指定することです。
例:
$ go test packageName -run NameOfTest
を参照してくださいドキュメント詳細については。
フラグは正規表現に一致するため、-run
文字列 が含まれている場合は他のテストも実行される可能性があることに注意してください。NameOfTest
-run
したがって、正確に 'NameOfTest' という名前のテストのみが実行されるようにするには、次の正規表現を使用する必要があります^NameOfTest$
。
$ go test -run "^NameOfTest$"
もう 1 つの方法は、実行するテストを含む特定のファイルに名前を付けることです。
$ go test foo_test.go
しかし、落とし穴があります。これは次の場合にうまく機能します:
foo.go
は ですpackage foo
。foo_test.go
はpackage foo_test
'foo' をインポートします。
foo_test.go
と がfoo.go
同じパッケージである場合(一般的なケース)、 をビルドするために必要な他のすべてのファイルに名前を付ける必要がありますfoo_test
。この例では、次のようになります。
$ go test foo_test.go foo.go
パターンを使用することをお勧めします-run
。または、可能な場合は常にすべてのパッケージ テストを実行してください。