私は2つのプロジェクトモジュールを持っています:A、B、およびライブラリモジュール。両方のプロジェクトはライブラリを使用しています。私は両方のプロジェクトでいくつかの接続テストを行っています(UI Automator)。そのテストには、私がライブラリに移動したい共通のユーティリティコードがあります。どうしたらいいですか?Android接続テスト共通コードをライブラリモジュールに移動
私が試したこと。最初の方法:
- コピー共通のコードライブラリプロジェクトへのsrc/androidTest/javaの/ XXX フォルダ
- には androidTestCompile
- 下ライブラリbuild.gradleのUIのAutomatorの依存関係に追加以下のbuild.gradleをプロジェクトに追加:問題の私を構築する原因
dependecies {
...
androidTestCompile project(path: ':library', configuration: "debug")
...
}
私はSRC/androidTestフォルダが
第二の方法をデバッグコンフィギュレーションを構築する時に使用されていない理解しているため、n個のプロジェクト:
第2のステップは
同じですが、ライブラリbuild.gradleに
を追加します。
- は
task connectedTestsJars(type: Jar, dependsOn: "assembleXXXAndroidTest") {
classifier = 'connectedTests'
includes = ['com/**']
from "$buildDir/intermediates/classes/androidTest/XXX"
}
configurations {
connectedTestArtifact
}
artifacts {
connectedTestArtifact connectedTestsJars
}
<オール開始= "3">
dependencies {
...
androidTestCompile project(path: ':library', configuration: "connectedTestArtifact")
...
}
そのようにすべてがうまくコンパイルbuild.gradleプロジェクトに追加。ライブラリからのリソースが不足しているため、接続されたテストランタイム中にクラッシュする(両方のプロジェクトの共通コードとリソースが多い) ライブラリからのソースのみを使用していますが、代わりにaarファイルを使用する必要があることを理解しています(src/androidTestの内容を追加していますか?)。 その場合のタスクタイプは何ですか?または結果としてaarファイルを取得するために私のカスタムタスクで行うべきアクションは何ですか?他の方法?
私は、接続されたテストの共通コードを別の(2番目の)ライブラリモジュールに移動して使用することができますが、コンパイル時間を節約することはできません。 現在のモジュール構造を維持し、接続されたテスト共通コードをライブラリモジュールに移動する方法はありますか?