繁体   English   中英

使用Android Studio 3.0中的Android Gradle插件3.0.0打破了Android多项目测试依赖项设置

[英]Android multi project test dependency setup breaks with Android Gradle Plugin 3.0.0 in Android Studio 3.0

我正在尝试从Android gradle插件2.3.3迁移到3.0。 我有2个项目,其中ProjectB中的测试使用ProjectA中src/test/java存在的测试类。 在使用android gradle插件2.3.3时,我利用以下设置来实现此目的-

ProjectA build.gradle

task myTestsJar(type: Jar, dependsOn: testClasses) {
   from sourceSets.test.output      
}

configurations {
  testArtifacts
}

artifacts {
   testArtifacts myTestsJar
}

ProjectB build.gradle

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

如您所见,我首先尝试通过使用人工配置在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中的任何测试时,此编译成功完成,但我得到了ProjectA测试类的ClassNotFoundException 此外,这仅在我使用Junit运行配置在Android Studio中运行测试时发生,并且在通过命令行运行测试时不会发生此类ClassNotFoundException

我不确定在尝试使其正常工作时我在做什么错。 所以请帮忙!

原来这与Gradle缓存有关,我通过删除项目的.gradle目录解决了这一问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM