2

質問:ある Gradle プロジェクトにある JUnit テストを、別のプロジェクトからの依存関係で実行することは可能ですか?

バックグラウンド

このマルチプロジェクトのセットアップを検討してください。

product_1_configuration_with_tests/
feature_a_with_tests/
feature_b_with_tests/
common_integration_tests/
  • 簡単にするために、製品プロジェクトは他の 3 つのプロジェクトに依存しています。他の依存関係は存在しません。
  • common_integration_tests製品のコンテキスト (クラスパス/依存関係) で実行する必要がある、すべての製品に共通の統合テストが含まれています。
  • common_integration_tests他のプロジェクトに依存することはできません。
  • 一般的な統合テストの動作は、ランタイム クラスパスの内容によって異なります。

このような一般的な統合テストはどのように実行できますか?

試み

理想的には、製品プロジェクトでテスト タスクを定義したいと考えています。スイートに統合テストを含めてみました:

// In product_1_configuration_with_tests/build.gradle
task integrationTest(type: Test) {
  include '**/MyIntegrationTest.class'
}

テスト タスクは別のモジュールに存在するテストを見つけられないため、テストは実行されません。

4

1 に答える 1

0

統合テストのソースをプロジェクトの別のソース セットとして宣言するproduct_1_configuration_with_tests(プロジェクトを諦める) か、 oncommon_integration_testsからの依存関係を宣言します。グリーンフィールド プロジェクトでは、前者が望ましいアプローチですが、後者も同様に機能します。他のソリューションは不必要に複雑です。common_integration_testsproduct_1_configuration_with_tests

common_integration_tests は、他のプロジェクトに依存することはできません。

なんで?

于 2013-03-25T14:25:02.083 に答える