Jon*_*Jon 7 android code-coverage jacoco
我一直在尝试获取本地单元测试的代码覆盖率,但没有成功。
这是我所说的本地单元测试的参考。
https://developer.android.com/training/testing/unit-testing/local-unit-tests.html
为了运行我的单元测试,我使用以下 gradle 命令。
./gradlew clean testDebugUnitTest
此任务将运行单元测试,但是当我查看“build/jacoco”文件夹中生成的 jacoco 文件(testDebugUnitTest.ec)时,它始终显示空覆盖范围。
我已在 build.gradle 文件中启用了覆盖范围,如下所示。
android {
buildTypes {
debug {
testCoverageEnabled true
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎没有帮助。我有什么遗漏的吗?
请注意,如果我通过 Android Studio 运行本地单元测试,则一切正常。我单击“测试”模块,然后单击“运行覆盖率测试”。
所以,我找到了我自己问题的答案。奇怪的是,看起来运行“testDebugUnitTest”并设置“testCoverageEnabled”标志是正确的方法。
然而,由于显然 gradle 的 jacoco 版本与 Android Studio 和我的 CI 系统(Jenkins)中运行的 jacoco 版本不同,因此由于 jacoco 中的一些向后兼容性问题而无法查看它。
为了解决这个问题,我将 gradle 中的 jacoco 版本设置为 Android Studio (Intellij) 和 Jenkins 中的相同版本。
jacoco {
toolVersion = '0.7.0.201403182114'
}
Run Code Online (Sandbox Code Playgroud)
我将上面的代码放在我的 build.gradle 文件中。
| 归档时间: |
|
| 查看次数: |
3333 次 |
| 最近记录: |