有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

正如在Open JaCoCo report in Intellij IDEA中所讨论的,当我使用Jacoco(而不是本机IntelliJ跟踪)收集代码覆盖率统计数据时,覆盖率窗口中始终显示0.0%(即“否”覆盖率)

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

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

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

有谁能告诉我,我是否必须采取一些必要的措施,才能让IntelliJ接受我的Jacoco保险


共 (5) 个答案

  1. # 1 楼答案

    我可能猜你正试图以TeamCity(jaCoCo)展示的方式看到测试覆盖率。 如果是,有一些简单的解决方法,可以检查所有遗漏的分支(只需一般统计访问了哪些分支以及访问了多少次):

    enter image description here

    enter image description here

    这就是我的建议,伙计们

  2. # 2 楼答案

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

    然而,作为替代方案,我们可以使用maven sonar插件的目标sonar:sonar将jacoco report(作为maven build的一部分创建)推送到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>
    

    声纳。钥匙和声纳。分支属性值可以从sonarqube中创建的相应项目中检索

  3. # 3 楼答案

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

  4. # 4 楼答案

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

  5. # 5 楼答案

    当您为测试类将类添加到PowerMockitoannotation@PrepareForTest时,相应的类将不会显示代码覆盖率