如何使用jacoco.exec报告

时间:2013-07-31 14:23:57

标签: testing code-coverage jacoco

我从jacoco生成了一个代码覆盖率报告,它是 jacoco.exec 。但我不知道如何使用它......

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

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

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

全部谢谢

10 个答案:

答案 0 :(得分:52)

在IntelliJ Idea中,从菜单中选择Analyze>显示覆盖率数据。在新窗口中按+按钮并选择.exec文件。 测试覆盖率结果将显示在编辑器Coverage选项卡中。

答案 1 :(得分:19)

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

答案 2 :(得分:13)

this thread您无法直接使用生成的jacoco.exec生成报告。您可以下载Jacoco的样本build.xml并使用它来生成报告。您需要对build.xml进行这些更改:将路径设置为

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

我还将默认目标更改为“报告”。然后输入“ant”运行它,您的报告就会生成。

答案 3 :(得分:4)

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

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

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


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

mvn clean test jacoco:report

答案 4 :(得分:3)

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

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

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

答案 5 :(得分:1)

我们可以使用maven-sonar-plugin的目标,声纳:声纳

将jacoco exec报告(作为maven构建的一部分创建)推送到声纳(qube)服务器

mvn clean install声纳:sonar -Dsonar.host.url = http://:9000 -Dsonar.projectKey = -Dsonar.branch = -Dsonar.login = -Dsonar.password =

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

答案 6 :(得分:1)

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

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

HTML报告:此报告将能够显示在类或方法级别上覆盖/未覆盖的行总数,但是将无法显示覆盖了哪些实际行/在同一位置发现。

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

无论出于何种原因,我无法按照人们的建议让 EclEmma 和 Jacoco 与 Eclipse 一起工作,因此我偶然发现了以下解决方法。

  1. 确保您已将 jacoco 插件添加为 maven pom 的依赖
  2. 打开运行配置...,向您正在处理的项目添加一个新的 Maven 构建
  3. 使用以下作为您的目标:clean test jacoco:report
  4. 应用并运行,刷新您的 /target 目录,现在您应该看到 /target/site/jacoco
  5. 在 jacoco 目录中找到 index.html,右键单击并选择 Open With... 并选择 Web Browser
  6. 您的 jacoco.exec 现在可以通过 Web 浏览器在 Eclipse 中完全导航
  7. 更改代码覆盖率,运行您设置的 Maven 构建作业,刷新浏览器,您应该会看到不同之处。

答案 9 :(得分:-4)

终端:mvn install jacoco:使用jacoco插件报告maven项目