1

Android gradle プラグイン 2.3.3 から 3.0 に移行しようとしています。src/test/javaProjectB のテストが 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.gradleprojectB を変更しました-build.gradletestImplementationtestCompile

dependencies {
      testImplementation project(path: ':ProjectA', configuration: 'testArtifacts')
}

これは正常にコンパイルされますが、ProjectA のテスト クラスを利用する ProjectB でテストを実行しているときに、ClassNotFoundExceptionProjectA のテスト クラスを取得します。さらに、これはJunit実行構成を使用してAndroid Studioでテストを実行しているときにのみ発生し、ClassNotFoundExceptionコマンドラインからテストを実行するときには発生しません。

それを機能させようとしているときに、何が間違っているのかわかりません。だから助けてください!

4

1 に答える 1