当前位置: 首页 > 知识库问答 >
问题:

Gradle-Jacoco代码覆盖率,无需运行connectedCheck

聂迪
2023-03-14

我正在使用Android Studio 1.2。2和Gradle插件1.2。3.

我正在尝试生成代码覆盖率报告,而不运行gradlew connectedCheck,只运行gradlew test。我希望避免需要连接设备或模拟器,这样我就可以加快Jenkins服务器上的构建速度。

到目前为止,我所能做的最好的事情就是在报告中包含单元测试执行数据,如下所述:Android Studio中的Jacoco代码覆盖。这对于显示所有测试的结果很有用,但是目前我只想运行单元测试(Junit4和Robolectra)。

是否有办法编辑createDebugCoverageReportgradle任务,使其不运行connectedAndroidTest

非常感谢。

共有2个答案

章增
2023-03-14

有一个开源插件可以做到这一点:jacoco android gradle插件。

它基本上运行每个变体的单元测试并生成覆盖报告。使用情况记录在项目README中。

金谭三
2023-03-14

我设法找到了一个解决办法。即,禁用connectedAndroidTest任务。

project.afterEvaluate {
    def append = "append=true"
    def destFile = "destfile=$buildDir/outputs/code-coverage/connected/coverage.ec"
    testDebug.jvmArgs "-javaagent:$buildDir/intermediates/jacoco/jacocoagent.jar=$append,$destFile"

    createDebugCoverageReport.dependsOn testDebug
    connectedAndroidTestDebug.enabled = false
}

因此,从这个答案中提出的解决方案开始,它将单元测试覆盖率添加到仪器测试覆盖率中,我禁用了仪器测试任务。这允许我通过执行createDebugCoverageReport任务,只运行单元测试,而不需要连接设备。

 类似资料:
  • 我有一个maven项目(link),我想在上面运行代码覆盖率。 我在主项目pom文件上运行了命令,但没有生成报告。相反,我得到的警告是 有人能建议我如何用这个pom文件生成代码覆盖率报告吗。我正在使用apache-maven-3.3。9和testNG。

  • 我在声纳中的代码覆盖率显示为0%,这不是真的,因为我有单元测试。 格拉德尔 当我打开inside然后我可以看到成功的单元测试。 我在Jenkins环境中运行作为

  • 我的代码运行在具有单独JVM的单独虚拟机上。我想在此虚拟机上以tcpserver模式设置JaCoCo代理以收集覆盖率数据。然后,我将在我的maven项目中以tcpclient模式设置JaCoCo代理,以连接到上面提到的VM并获取覆盖率数据。 问题是代理不收集任何覆盖数据。在中创建了覆盖率数据文件,但该文件为空。 下面是代理选项:-Java agent:/usr/xx/plugins/org . j

  • 我正在尝试使用JaCoCo-javaagent传递VM参数来获得代码覆盖率 -Java agent:/test/jaco co/jaco agent . jar = dest file =/test/jaco co/jaco co . exec,includes=com。*,append=true 我能在jacoco中获得一些价值。执行文件,但无法获取覆盖率报告。我怎样才能把jacoco转化成。执

  • 代码覆盖率在仪表板上显示为 0% build.gradle文件 运行此命令 JacocoTestReport使用正确的代码覆盖率生成 声纳曲渐变任务生成此日志 在谷歌上搜索了半天,这个问题的唯一真正解决方案是:财产的sonar.jacoco。不推荐使用“报告路径”。请使用“声纳”jacoco。改为“报告路径” 此处的答案解释了双重输出: 但是,这似乎尚未添加到gradle插件中,因为正在使用的插件

  • 我正在尝试生成Jacoco代码覆盖率报告。我已经将AndroidTestCase用于我的测试类。 在过去几天里,我已经关注了堆栈溢出的各种公认答案。结果是否定的。 我的分级文件: