使用 Jacoco 时,Intellij 中的覆盖率视图显示 0.0%

问题描述 投票:0回答:6

在 Intellij IDEA 中打开 JaCoCo 报告中所述,当我使用 Jacoco(而不是本机 IntelliJ 跟踪)收集代码覆盖率统计信息时,覆盖率窗口中始终显示 0.0%(即“无”覆盖率)。

这是在我完成整个“分析 -> 显示覆盖率数据...”并选择生成的“jacoco.exec”文件之后。

相同的“jacoco.exec”文件可以与其他工具(例如 Jacoco 本机报告生成任务)以及 Sonar 配合使用,从而生成预期的覆盖率报告内容。

原生 IntelliJ 仪器也可以正常工作。

如果我必须执行一些重要步骤才能让 IntelliJ 接受我的 Jacoco 承保范围,有人可以建议我吗?

java intellij-idea code-coverage jacoco
6个回答
4
投票

当您将类添加到测试类的PowerMockito注释

@PrepareForTest
时,相应的类将不会显示代码覆盖率。


2
投票

在导入 jacoco.exec 之前通过 IntelliJ 构建源代码可能会解决显示 0% 覆盖率的问题。


2
投票

对我来说,解决方案是简单地将根包(在我的情况下为“de”,在您的情况下可能为“com”)添加到“覆盖率数据中包含的包和类”。 现在我看到了合理的代码覆盖率。


1
投票

我可能猜想您正在尝试以与 TeamCity(jaCoCo)显示的方式相同的方式查看测试覆盖率。 如果是,有简单的解决方法如何检查所有错过的分支(只是一般统计访问了哪些分支以及访问了多少次):

这就是我所有的建议,伙计们


0
投票

对我来说,这是目标类别的问题。在 IntelliJ 的编辑配置弹出窗口中,查看

Modify Options
specify classes and packages
选项。似乎应该指定这些类,或者在覆盖范围内不测量任何内容。


-1
投票

“intellij idea”似乎无法显示创建的 jacoco 报告的正确覆盖率值。当它显示覆盖范围为 0.0 而不是给出不支持的格式错误时,这确实具有误导性和不公平。

但是,作为替代方案,我们可以使用 maven-sonar-plugin 的目标 sonar:sonar 将 jacoco 报告(作为 maven 构建的一部分创建)推送到 sonar(qube) 服务器。

mvn clean install sonar:sonar -Dsonar.host.url=http://<sonar-host>:9000 -Dsonar.projectKey=<sonar project key> -Dsonar.branch=<sonar project branch> -Dsonar.login=<sonar user> -Dsonar.password=<sonar pwd>

sonar.projectKey 和 sonar.branch 属性值可以从 sonarqube 中创建的相应项目中检索。

© www.soinside.com 2019 - 2024. All rights reserved.