【发布时间】:2017-03-14 13:11:25
【问题描述】:
我的 Android 项目有大约 70 次 Robolectric 测试,它们都通过了 2 个月。不知何故,从今天开始,测试失败并出现奇怪的错误消息:
- java.lang.IllegalStateException:您需要在此活动中使用 Theme.AppCompat 主题(或后代)。
- java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
- 也无法加载资源文件
我没有更改我的代码,所以它不可能是代码相关的问题。我清理了项目和 gradle,但没有帮助。前几天我确实做了一个Android Studio推广的更新,不知道是否相关。
还有其他人遇到这个问题吗?我该如何摆脱这种糟糕的状态?
-- 编辑--
Robolectric 版本很重要!基于 cmets、robolectric 版本 vs. 中的建议的有趣观察失败率:
- 3.3.1,约 40% 的测试失败。
- 3.2.2,~40% 失败(与 3.3.1 相同)
- 3.1.4,~15% 失败
- 3.1.2,~0% 失败(带有警告,见下文)
- 3.1,100% 失败 (!)
另一个观察结果是它不一致。如果我跑了整套,都通过了!但是如果我只运行一个测试文件,所有的都会失败并显示此消息:
没有这样的清单文件: build/intermediates/bundles/debug/AndroidManifest.xml
【问题讨论】:
-
您使用的是哪个版本的 Robolectric?
-
在 Robolectric 3.0 上运行良好。您是否尝试过“使缓存无效/重新启动”?您是否尝试在命令行上使用 gradlew 运行它:
gradlew clean testDebug? -
感谢 cmets 的帮助。我正在尝试不同的版本。请查看我的更新。
-
你能展示一个你的测试设置的例子吗?如果你从命令行运行它会成功吗?
-
如果我做“./gradlew test”,它可以工作;但是这与从 AS 一次运行没有区别,这也可以。不确定我的测试设置是什么,我猜只是 AS 的默认设置。
标签: android android-studio robolectric robolectric-gradle-plugin