android - 类重命名后 Gradle 测试运行失败

标签 android testing gradle android-gradle-plugin

我们设置了 Gradle 来构建和测试我们的 Android 应用。现在我们遇到了一个问题,即在项目某处重命名类后,Gradle 测试运行失败 重现:

Execution failed for task ':PROJ:compileDebugUnitTestJavaWithJavac'.
> Unable to read class file: '/path/to/class/with/the/name/before/renaming.class'

这个错误是可重现的......

  • 本地(从 Android Studio 运行 gradle 测试,或在命令行上使用 ./gradlew test),以及
  • 远程,当测试在我们的 CI(Teamcity 服务器)上运行时。

解决问题的方法是在本地手动触发重建(例如在 Android Studio Build > Rebuild Project 中)或使用标志 重新运行 Teamcity 任务>在构建之前清除结帐目录中的所有文件设置。

有什么方法可以让我们的测试在类重命名后不失败?

虽然上面的解决方案足够简单,但有点烦人的是,将其添加到我们的存储库中的简单重命名会破坏 CI 构建……我们真的希望它们保持绿色。 :)

最佳答案

这是一个 known issue在 Gradle 2.14 和 2.14.1 中,在即将发布的 Android Gradle 插件版本中将有一个解决方法。

作为解决方法,您可以为您的项目进行干净的构建。对于 CI 构建,干净的构建无论如何都是一个好主意。

关于android - 类重命名后 Gradle 测试运行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39372087/

相关文章:

android Zoom-to-Fit 谷歌地图 v2 上的所有标记

testing - Cucumber 和 JUnit 测试

android - 从自定义 Gradle 插件中动态添加构建风格

android - 当 View 在 FlatList 中时, View borderRadius 样式不适用于 Android

android - 为什么我的通知图标在 Oreo 中显示不正确?

c# - 阅读 XML 在我的电脑上有效但在我的 Android 手机上无效

asp.net-mvc - 如何在 ASP.NET MVC 中测试操作过滤器?

java - 在没有 DAO 的情况下测试服务层

WLP (WebSphere Liberty) 上的 Spring Boot 部署抛出 CWWKC0044W 错误

android - 如何在 android studio 之外使用随 android studio 安装的 gradle