Jacoco在命令行中报告

时间:2016-11-25 18:11:40

标签: java jacoco

我必须编写.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报告?

4 个答案:

答案 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文件中。在此之后,您可以使用AntMaven生成报告,或使用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>