テスト自体をインポート可能なパッケージ(つまり_test.go
ファイルではありません)に移動してから、2回使用することができます。あなたは物事がgo test
コマンドライン引数と仲良くすることができますTB.Run
を使用
package subdir_test
import "github.com/blah/project/parent/subdir/tests"
func TestPackage(t *testing.T) {
tests.Run(t)
}
:
package tests // subdir
import "testing"
func Run(t *testing.T) {
for _, test := range testCases { // or whatever
test.Run(t)
}
}
そしてもちろん、親ディレクトリがちょうど彼らの子ディレクトリを呼び出すことができますが、サブディレクトリ内_test.go
ファイルは、のようなものにすることができます'Run
方法:
package parent_test
import (
"testing"
p "github.com/blah/project/parent/tests"
s "github.com/blah/project/parent/subdir/tests"
)
func TestPackage(t *testing.T) {
p.Run(t)
}
func TestSubPackages(t *testing.T) {
s.Run(t)
}
私は回避することをお勧めしますv多くのツーリングのようなものは、実際にはうまく処理する準備ができていません(たとえば、カバレッジで実行すると単一のレポートが生成され、大規模なプロジェクトでは複雑になりません。また、必ずしも意味をなさない可能性がある)
ユニットテストは同じパッケージ内になければなりません。これは同じディレクトリを意味します。ブラックボックステストは別のディレクトリからのみ実行できます。 – JimB
それは私が恐れていたことです、情報のおかげで。 – Camway