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

Java 使用Jacoco时,Intellij的覆盖率视图显示为0.0%,java,intellij-idea,code-coverage,jacoco,Java,Intellij Idea,Code Coverage,Jacoco,如中所述,当我使用Jacoco(而不是本机IntelliJ跟踪)收集代码覆盖率统计信息时,覆盖率窗口中始终显示0.0%(即“否”覆盖率) 这是在我完成整个“分析->显示覆盖率数据…”并选择生成的“jacoco.exec”文件之后 同一个“jacoco.exec”文件可以与其他工具(如jacoco本机报告生成任务)以及Sonar配合使用,并生成预期的覆盖率报告内容 此外,本地IntelliJ仪器也可以正常工作 有人能告诉我,我是否必须执行一些基本步骤才能让IntelliJ接受我的Jacoco覆盖范

如中所述,当我使用Jacoco(而不是本机IntelliJ跟踪)收集代码覆盖率统计信息时,覆盖率窗口中始终显示0.0%(即“否”覆盖率)

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

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

此外,本地IntelliJ仪器也可以正常工作


有人能告诉我,我是否必须执行一些基本步骤才能让IntelliJ接受我的Jacoco覆盖范围吗?

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

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

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

然而,作为替代方案,我们可以使用maven sonar插件的目标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>
mvn clean install sonar:sonar-Dsonar.host.url=http://:9000-Dsonar.projectKey=-Dsonar.branch=-Dsonar.login=-Dsonar.password=

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

将类添加到测试类的PowerMockito annotation
@PrepareForTest
时,相应的类将不会显示代码覆盖率

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

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

我也遇到了同样的问题,就我而言,这似乎与Maven多模块布局有关。更多细节。不幸的是,还没有解决方案。啊,Jetbrains支持,一如既往地有用。您的jacoco.exec文件大小是否合理?我见过很多次,因为错误的JaCoCo配置,它实际上没有收集覆盖率,而且文件太小。如何运行测试代码来收集代码覆盖率?来自Intellij IDEA?或者maven/ant?在IntelliJ的coverage选项卡中,您是否检查过要为其启用覆盖的包是否足够通用?我曾经遇到过一个问题,覆盖率选项卡中的软件包列表类似于“com.app.very.special.package.*”而不是“com.app.*”感谢andrew的帮助。事实上,这就是我正在做的,但是如果您单击choose coverage runner的组合框,则JaCoCo有一个选项。在“分析”菜单下,可以选择从外部生成的
JaCoCo.exec
导入JaCoCo覆盖范围。这个功能对我们不起作用。如果您有一些配置问题,您可以尝试另一种解决方法-通过插件连接到Teamcity(我相信它可以以同样的方式向您显示代码覆盖率),这对我起作用。IntelliJ 2020.3版