关于测试:如何使用jacoco.exec报告

how to use jacoco.exec report

我从jacoco(即jacoco.exec)生成了代码覆盖率报告。 但是我不知道如何使用...

我生成它的方式是通过命令行:

1
java -javaagent:/path/to/jacocoagent.jar=include=some.package.*,output=file org.junit.runner.JUnitCore some.package.ClassTest

然后我得到了jacoco.exec报告。 我所需要的只是百分比的数量,而我仅使用命令行。 有没有办法将此报告转换为可读的txt文件?

谢谢大家


在IntelliJ Idea中,从菜单中选择Analyze> Show Coverage data。在新窗口中,按+按钮,然后选择您的.exec文件。
测试覆盖率结果将显示在编辑器的"覆盖率"选项卡中。

更新:

在最新版本的Intellij Idea中,菜单已移至Run> Show Code Coverage Data


对于Eclipse用户,您只需在Eclipse中使用EclEmma jacoco插件即可。窗口>显示视图>覆盖范围(当然,您必须先安装插件)。在"覆盖率"窗口中,右键单击>导入> .....选择exec文件(或其他不错的方法),选择源代码,然后查看。您还可以将结果导出到html文件。


根据该线程,您不能直接使用生成的jacoco.exec来生成报告。您可以下载Jacoco的样本build.xml并使用它生成报告。您需要对build.xml进行以下更改:将路径设置为

  • 您下载的jacocoant.jar
  • 您的jacoco.exec
  • 您的项目源代码
  • 您编译的项目类文件

我还将默认目标更改为"报告"。然后通过键入" ant"运行它,将生成您的报告。


我认为该报告已经生成。查看文件夹target/site/jacoco

这提供了target/site/jacoco/jacoco.csv,这是一些原始文本,您可以相对容易地解释它们-也许可以导入到电子表格中

大多数人都想要target/site/jacoco/index.html,它是网页形式的报告。

如果您没有看到这些报告,请尝试显式请求它们,并查看是否提供了任何线索...

1
mvn clean test jacoco:report

Jacoco提供了一个命令行库来处理jacoco.exec数据:Jacoco cli doc

安装Jacoco之后,可以使用以下命令生成报告:

1
2
3
4
java -jar lib/jacococli.jar report jacoco.exec \\
--html ./report \\
--sourcefiles [path/to/your/source/files] \\
--classfiles [path/to/your/class/files]

这个答案将类似于@EvansY。在Jacoco文档的以下命令的帮助下,可以生成HTML文件(在报告目录中的此处)和XML文件(名为cov)。

1
2
3
java -jar lib/jacococli.jar report jacoco.exec \\
--classfiles C:\\Users\\severalOtherDirectories\\YourProject\\target\\classes \\
--html ./report --xml cov.xml

HTML报告:此报告将能够显示在类或方法级别覆盖/未覆盖的行的总数,但是将无法显示在同一或覆盖范围内实际覆盖/未覆盖的实际行。

XML文件:将生成的文件插入到项目中之后,只需使用VS代码覆盖率扩展(我更喜欢覆盖率范围),就可以在编辑器本身中逐行显示状态。


我们可以使用maven-sonar-plugin的目标sonar:sonar将jacoco exec报告(作为maven构建的一部分创建)推送到声纳(qube)服务器

mvn全新安装声纳:sonar -Dsonar.host.url = http://:9000 -Dsonar.projectKey = -Dsonar.branch = -Dsonar.login = -Dsonar.password =

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


要在IntelliJ Idea中查看此内容,请从菜单栏中选择"运行">"显示代码覆盖率数据"。在新窗口(选择要显示的Coverage Suite)中,按+按钮,然后选择您的.exec文件。测试覆盖率结果将显示在编辑器的"覆盖率"选项卡中。

要为上述.exec文件生成覆盖率报告文件,请选择运行>生成覆盖率报告。然后选择您的输出目录,然后单击保存。您的报告将生成到所选文件夹。打开文件夹中的index.html文件,以在浏览器中查看结果。
我正在使用IntelliJ IDEA 2019.3.4(社区版)


如果您使用Maven,请使用报告汇总目标。

请参阅下面的链接:

报告总体Maven目标

这是我的maven pom.xml文件的摘录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
            <plugin>
            <groupId>org.jacoco</groupId>
            jacoco-maven-plugin</artifactId>
            <version>0.8.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report-aggregate</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions

csv报告文件在以下位置生成:site / jacoco / jacoco.csv


终端:mvn用jacoco插件为maven项目安装jacoco:report