如何使用jacoco.exec报告

wlh*_*hee 58 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢大家

Rob*_*rto 68

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

  • 看起来该命令已移至“运行”菜单 >“显示代码覆盖率数据” (6认同)
  • 为此,您首先必须安装第三方Emma插件 (2认同)
  • 为此目的并不真正需要“Emma Plugin” (2认同)

Loc*_*han 21

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

  • 小修正.右键单击>导入会话>覆盖会话>下一步> {选择已运行javaagent的源代码的编译jar文件以生成jacoco.exec}>完成 (4认同)
  • 从什么时候开始Eclipse只有像OP这样的命令行模式? (2认同)

Chr*_*ris 13

根据此主题,您无法直接使用生成的jacoco.exec生成报告.您可以下载Jacoco的示例build.xml,并使用它来生成报告.您需要对build.xml进行这些更改:设置路径

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

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

  • 如果我不使用Ant怎么办? (8认同)

Eva*_* Y. 9

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]
Run Code Online (Sandbox Code Playgroud)

  • 嘿,@wlhee,您能否将此答案标记为对后代正确?谢谢你! (2认同)

nob*_*bar 8

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

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

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


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

mvn clean test jacoco:report
Run Code Online (Sandbox Code Playgroud)


Yas*_*ala 6

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

java -jar lib/jacococli.jar report jacoco.exec \
--classfiles C:\Users\severalOtherDirectories\YourProject\target\classes \
--html ./report --xml cov.xml
Run Code Online (Sandbox Code Playgroud)

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

XML 文件:将生成的文件插入项目并简单地使用 VS 代码覆盖率扩展(我更喜欢覆盖范围)后,可以在编辑器本身中可视化逐行状态。