GoLang(testify)で単体テストと統合テストを分離するための確立されたベストプラクティスはありますか?ユニットテスト(外部リソースに依存しないため非常に高速に実行される)と統合テスト(外部リソースに依存するため実行速度が遅い)が混在しています。ですから、統合テストを含めるかどうかを制御できるようにしたいのですgo test
。
最も簡単な方法は、mainで-integrateフラグを定義することです。
var runIntegrationTests = flag.Bool("integration", false
, "Run the integration tests (in addition to the unit tests)")
そして、すべての統合テストの先頭にifステートメントを追加するには:
if !*runIntegrationTests {
this.T().Skip("To run this test, use: go test -integration")
}
これは私ができる最善のことですか?私はtestifyのドキュメントを検索して、おそらく命名規則やこれを実現する何かがあるかどうかを確認しましたが、何も見つかりませんでした。何か不足していますか?
var integration = flag.Bool("integration", true, "Enable integration testing.")
関数の外部として定義すると、変数はパッケージスコープに表示され、フラグは正しく機能します