gpt4 book ai didi

android jacoco 覆盖率显示 0% 与 gradle 但是有 95% 的测试覆盖代码

转载 作者:行者123 更新时间:2023-11-29 14:30:12 40 4
gpt4 key购买 nike

我正在尝试让 jacoco 为我的 android 测试项目创建代码覆盖率报告。

Gradle 版本 classpath 'com.android.tools.build:gradle:2.0.0'

我在 build.gradle 中有以下内容:

apply plugin: 'com.android.application'
apply plugin: 'jacoco'

jacoco {
toolVersion = "0.7.1.201405082137"
}

android {
buildTypes {
release {
}
debug {
testCoverageEnabled true
}
}
}

它显示报告如下图 enter image description here

几乎有 95% 的代码覆盖率(当我在 2015 年运行同一份报告时,报告显示为 95%)。从那时起,代码和测试文件夹没有太大变化。所以理想情况下,它应该像这样显示覆盖范围

enter image description here

我尝试使用 JDK7 和 8 运行报告,但结果相同。还尝试更改为最新版本的 JaCoCo,但结果仍然相同。

为什么报告显示为 0% 的覆盖率有什么想法吗?在运行 Gradle 任务时,它成功地在 androidTest 文件夹中运行了我的测试。 enter image description here

Facing same issue as mentioned in this question - This question is unanswered yet

最佳答案

我遇到了完全相同的问题。但是使用 Guna(2017 年 2 月 27 日)的评论,问题似乎是由在某些三星设备上运行覆盖测试引起的。

  • 一些较新的三星设备上,当您运行 Jacoco gradle 任务 createDebugCoverageReportcreateDebugAndroidTestCoverageReport 时,它将运行单元测试,但显示 0% 的覆盖率

  • 但在 Google Nexus 5 或大多数模拟器 上,当您运行相同的 Jacoco 任务时,它会正常工作并显示正确的覆盖范围。较旧的三星设备也能正常工作。

这很奇怪。

还要记住确保所有测试都先通过。这是 Jacoco 的另一个限制,因为即使你的整个套件中有一个小测试失败,它也不会生成测试覆盖率报告。另请注意:您的应用可能是 automatically uninstalled when the coverage report is generated .原因不明 - 您只需重新安装即可。

更新,2018 年 10 月 11 日:即使单个测试失败,也有一种方法可以生成覆盖率报告。在你的 app/build.gradle 中使用它(来自 here ):

buildTypes {
debug {
testCoverageEnabled = true
}
}

project.gradle.taskGraph.whenReady {
connectedDebugAndroidTest {
ignoreFailures = true
}
}

自动构建脚本可能需要使用"--continue" 标志,以确保单元测试失败将继续 gradle 任务;像这样:

./gradlew createDebugCoverageReport --continue

更多信息,另请参阅:

关于android jacoco 覆盖率显示 0% 与 gradle 但是有 95% 的测试覆盖代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42451660/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com