私は自分のプロジェクトをマルチプラットフォームに変更しました。Gradle:モジュールの依存関係からテストを実行するには?
前の状態: 1つのモジュール(プロジェクト)と1つのbuild.gradleのみ。すべてのテストはテストフォルダにあり、gradlew testDebug
を実行すると、すべての500テストが実行されていました。
新しい状態: 私は3つのモジュール
- コア
- androidversion
- rasberryPiVersion
これらのそれぞれを保持しているが、何もしない主なGradleのプロジェクトを持っていますモジュールにはそれ自身のグラデルファイルがありますが、アンドロイドとrasberryPiモジュールだけをビルドすることができます。それらの依存関係(それぞれのbuild.gradleファイル内)では、 "コア"モジュールに対してコンパイルされます。このように:
dependencies {
compile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
すべての私の500テストは、現在コアにあります。したがって、私がgradlew clean assembleDebug testDebug
をAndroidモジュールで実行すると、テストは検出されず、test-resultのフォルダは空になります。
私が直接コアモジュール上testDebug
コマンドを実行しようとしたが、それは自分自身でビルドしていないので、私はエラーが表示されます。
FAILURE: Build failed with an exception.
* What went wrong:
Task 'testDebug' not found in project ':core'.
だから私の質問は:方法がであり、 "testDebug"コマンドにモジュール依存(コア)のすべてのテストを実行するように指示するには?
私はまた、Androidのモジュールに依存してtestCompileを追加しようとしましたが、それは仕事をdoesntの、このような:
dependencies {
compile project(':clapcore')
testCompile project(':clapcore')
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android:android:4.1.1.4'
}
感謝を!
EDITは 私はコア上でコマンドgradlew build
を行うことができますし、それが「コア」モジュールでテストを実行することを見出しました。しかし、可能であれば、これらのテストを「カスケード」する方法が欲しいです。
*私は「アンドロイド」モジュールにコマンドgradlew buildNeeded
を行うことができますし、それはアンドロイドモジュールとコアのビルドを行いますことを発見した2 * EDIT。残念ながら、それはリリースでのみ構築されます!誰かが私にこの機能を使用する方法を指摘することができますが、デバッグでは、それは素晴らしいでしょう。私は、リリースビルドがバージョンの変更、git、pushなどのコミットのようなもっと多くのタスクを起動するので、デバッグに必要です。これは夜間のビルドのためだけであり、デバッグする必要があります。