我必须编写.sh启动一个覆盖Jacoco的UI应用程序。退出时,必须生成jacoco报告。
我无法使用这个简单的命令生成jacoco.exec:
java -jar ../binaries/editor.debug/application.jar -javaagent:/atgl/products/jacoco/0.6.3/lib/jacocoagent.jar=destfile=jacoco.exec
命令的第一部分工作正常并启动程序,但-javaagent选项不生成报告,程序也没有启动。 如果我做了语法错误,它的行为完全相同。
我的命令出了什么问题?
其次,此命令创建.exec文件。如何在命令行中生成.html报告?
答案 0 :(得分:2)
通过使用jacoco 0.7.9版本的jacococli.jar,现在可以使用命令行生成报告。我正在尝试相同的,并能够使用命令行生成报告。如果能够成功生成jacoco.exec文件,请使用以下命令生成报告。
java -jar "your local path/jacococli.jar" report "your local path/jacoco.exec" --classfiles "project path to class files" --html "local path\jacoco-report" --name myReport --sourcefiles "project path\src\main\java"
您应该能够以html格式查看报告。参考[http://www.jacoco.org/jacoco/trunk/doc/cli.html]
答案 1 :(得分:1)
JaCoCo的使用涉及两个步骤 - 收集覆盖信息和生成报告。所以你的命令没有错 - 它将覆盖信息收集到.exec
文件中。在此之后,您可以使用Ant或Maven生成报告,或使用JaCoCo APIs构建自己的报告生成器 - JaCoCo尚未为报告提供开箱即用的命令行界面生成,但有一个example of API usage for report generation。
答案 2 :(得分:1)
问题是-javaagent选项的位置。它需要处于第一位,如下:
java -javaagent:/atgl/products/jacoco/0.6.3/lib/jacocoagent.jar=destfile=jacoco.exec -jar ../binaries/editor.debug/application.jar
然后正如Godin所说,在命令行中生成报告是不可能的。我使用规则 do_jacoco_reports 创建了一个ant文件 exectoreport.xml 。该规则由脚本exectoreport.sh启动,该脚本必须在应用程序自然退出后调用。
答案 3 :(得分:0)
如果你已经在你的 pom.xml 中添加了 jacoco 插件,那么只需运行这个命令,你就会在 target\site\jacoco 中看到 jacoco 报告
mvn jacoco:report
要将 jacoco 插件添加到您的 pom.xml,请粘贴以下代码片段:
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>