2016-05-05 16 views
5

私は自分のプロジェクトをマルチプラットフォームに変更しました。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などのコミットのようなもっと多くのタスクを起動するので、デバッグに必要です。これは夜間のビルドのためだけであり、デバッグする必要があります。

答えて

0

Gradleのウェブサイトのドキュメントを読んだところ、非常に便利な機能buildNeededは単にすべてのbuildTypeを実行するだけで変更できないことがわかりました。 buildTypeを選択できる唯一の機能は、それぞれassembleDebugassembleReleaseです。

私のリリースプロセス(タグの作成、バージョンの更新、gitへのプッシュなど))はassembleReleaseの直後に実行されていましたが、夜間にbuildNeededを実行するとリリースプロセスがトリガーされるため、私は立ち往生しました。

私はreleaseVersionという名前のタスクを作成するためにbuild.gradleファイルを変更しました。zipalignReleaseです。だから私が実際にリリースを作成したいときはreleaseVersionと呼ぶが、夜間ビルドでビルド/テストをしたいときはbuildNeededコマンドを呼ぶ。

注意事項:テスト結果は、各モジュールの「ビルド」フォルダにあります。 CIを使用している場合は、すべてのモジュールを清掃するように十分注意してください。

関連する問題