我们已设置Gradle来构建和测试我们的Android应用。现在我们遇到了这个问题,在项目的某个地方重命名一个类后, Gradle测试运行失败可重现:
Execution failed for task ':PROJ:compileDebugUnitTestJavaWithJavac'.
> Unable to read class file: '/path/to/class/with/the/name/before/renaming.class'
这个错误可以重现......
./gradlew test
在命令行上运行)和解决问题,是在本地手动触发重建(例如在Android Studio Build>重建项目中)或使用标志{重新运行Teamcity任务{1}}设置。
在重命名课程后,我们有什么方法可以让我们的考试不失败?
虽然上面的解决方案很简单,但有点令人讨厌的是,一个简单的重命名会使它成为我们的回购将会破坏CI构建...我们真的希望那些保持绿色。 :)
答案 0 :(得分:1)
您可以使用TC的Swabra构建功能在每次构建之前或之后清除工作目录,这样所有生成的文件都会被清除,构建始终以干净的工作副本开始。对于可重复的构建,我认为这是一个必须使用的功能。
或者,您当然也可以将clean
Gradle任务添加到TC配置中,以便Gradle清除以前的构建工件。但是如果使用TC,我更喜欢Swabra,因为它可靠地恢复VCS状态。
答案 1 :(得分:1)
这是Gradle 2.14和2.14.1中的known issue,在即将推出的Android Gradle插件版本中将有一个解决方法。
作为一种解决方法,您可以为项目执行干净的构建。对于CI构建,干净的构建无论如何都是个好主意。