命令行中的 Jacoco 报告
Jacoco report in command line
我必须编写一个 .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 报告?
JaCoCo 的使用涉及两个步骤 - 收集覆盖率信息和生成报告。所以你的命令没有问题 - 它将覆盖信息收集到 .exec
文件中。在此之后,您可以使用 Ant or Maven, or built your own report generator using JaCoCo APIs - JaCoCo does not yet provide a out-of-the-box command line interface for report generation, however there is an example of API usage for report generation.
生成报告
更新 (2/8/2019)
JaCoCo provides command line interface 从版本 0.8.0 开始。
问题出在 -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 启动,必须在应用程序自然退出后调用。
通过使用 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]
如果您已将 jacoco 插件添加到 pom.xml 中,那么只需 运行 此命令,您将在 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>
我必须编写一个 .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 报告?
JaCoCo 的使用涉及两个步骤 - 收集覆盖率信息和生成报告。所以你的命令没有问题 - 它将覆盖信息收集到 .exec
文件中。在此之后,您可以使用 Ant or Maven, or built your own report generator using JaCoCo APIs - JaCoCo does not yet provide a out-of-the-box command line interface for report generation, however there is an example of API usage for report generation.
更新 (2/8/2019)
JaCoCo provides command line interface 从版本 0.8.0 开始。
问题出在 -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 启动,必须在应用程序自然退出后调用。
通过使用 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]
如果您已将 jacoco 插件添加到 pom.xml 中,那么只需 运行 此命令,您将在 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>