我知道有很多关于 Android 代码覆盖率的问题(在问这里之前我已经做了一些研究),但我仍然在某些方面卡住了,所以如果你能提供帮助,我将非常感激。我现在正在做的不是真正的单元测试,而是活动测试来验证视图(检查它们是否为空,检查按钮是否可点击,计算一个活动中的视图数量),然后我实现一些代码也可以测试每个活动的公共方法,我想知道这些测试的代码覆盖率。首先我尝试了 EclEmma,但似乎他们不支持 android,所以我转向 Emma。然后我有一个互联网上很多人的常见错误:
[exec] android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests:INSTRUMENTATION_RESULT: shortMsg=java.lang.IllegalAccessError
[exec] INSTRUMENTATION_RESULT: longMsg=java.lang.IllegalAccessError: Classref in pre-verified class resolved to unexpected implementation
[exec] INSTRUMENTATION_CODE: 0
[echo] Setting permission to download the coverage file...
[exec] Unable to chmod /data/coverage.ec: No such file or directory
[echo] Downloading coverage file into project directory...
[exec] remote object '/data/coverage.ec' does not exist
我尝试了很多其他人所做的事情,但他们无法解决我的问题。我从 data/data/coverage.ec 更改为 sdcard/coverage.ec,现在是 data/coverage.ec,它们都不起作用。我尝试挂载 -o remount rw /sdcard,这也不起作用。
有没有其他方法可以解决这个问题?活动测试甚至可以测试吗?或者我必须换成艾玛以外的东西?