Android gradle プラグイン 2.3.3 から 3.0 に移行しようとしています。src/test/java
ProjectB のテストが ProjectAのテスト クラスを使用する 2 つのプロジェクトをセットアップしました。Android gradle プラグイン 2.3.3 を使用しているときに、次の設定を使用してこれを実現します -
プロジェクトA build.gradle
-
task myTestsJar(type: Jar, dependsOn: testClasses) {
from sourceSets.test.output
}
configurations {
testArtifacts
}
artifacts {
testArtifacts myTestsJar
}
プロジェクトB build.gradle
-
dependencies {
testCompile project(path: ':ProjectA', configuration: 'testArtifacts')
}
ご覧のとおり、最初に Artificat 構成を使用して ProjectA のすべてのテスト クラスを Jar しようとしており、後でその構成を ProjectB で使用しています。Android gradle pluign 2.3.3 を使用している間、これは期待どおりに機能していました。
AGP 3.0 に移行するとき、私の ProjectAは同じままですが、このように代わりに使用するようにbuild.gradle
projectB を変更しました-build.gradle
testImplementation
testCompile
dependencies {
testImplementation project(path: ':ProjectA', configuration: 'testArtifacts')
}
これは正常にコンパイルされますが、ProjectA のテスト クラスを利用する ProjectB でテストを実行しているときに、ClassNotFoundException
ProjectA のテスト クラスを取得します。さらに、これはJunit実行構成を使用してAndroid Studioでテストを実行しているときにのみ発生し、ClassNotFoundException
コマンドラインからテストを実行するときには発生しません。
それを機能させようとしているときに、何が間違っているのかわかりません。だから助けてください!