【问题标题】:JaCoCo agent is not tracking code coverage infoJaCoCo 代理未跟踪代码覆盖率信息
【发布时间】:2017-02-20 00:47:52
【问题描述】:

我有一个在 Wildfly 9 服务器上运行的 Java Web 应用程序,我使用 jmeter-maven-plugin 在我的应用程序的运行实例上运行一些性能测试。这些测试对我的应用程序服务运行简单的 REST 请求。

我想做的是检索性能测试的代码覆盖率统计数据,以便我始终知道我的性能测试覆盖的代码量是多少。

按照thisthisthis StackOverflow 线程,我在服务器上设置了 JaCoCo Java 代理。这是启动时的代理配置

set "JAVA_OPTS=%JAVA_OPTS% -javaagent:/path/to/jacocoagent.jar=output=tcpserver,address=*,port=6300,includes=my.package.*"

另外,我在 tests Maven 项目上配置了jacoco-maven-plugin,以便让它在服务器上运行转储以检索执行信息。

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <configuration>
        <destFile>${sonar.jacoco.itReportPath}</destFile>
        <append>false</append>
    </configuration>
    <executions>
        <execution>
            <id>jacoco-dump</id>
            <phase>verify</phase>
            <goals>
                <goal>dump</goal>
            </goals>
            <configuration>
                <address>my.server</address>
                <skip>${skipJMeterTests}</skip>
                <!-- <reset>true</reset> -->
            </configuration>
        </execution>
    </executions>
</plugin>

所以,当我运行 mvn verify 时,所有性能测试都会运行(因此确实调用了 REST 服务)并且 JaCoCo 插件正确转储服务器 jacoco.exec 文件,但是当我检查运行 mvn sonar:sonar 的这个文件时,我得到一个0% 的代码覆盖率,即使服务是由性能测试调用的。

可能是什么问题?我尝试了代理和插件的不同配置,但似乎没有解决我的问题。

谢谢

【问题讨论】:

  • 您可以验证多项内容。 1) 运行时类是否与运行报告的类版本相同? 2)您的服务器启动文件是否也在 Jacoco 之前调用任何其他 Java 代理(例如:Wiley Introscope)?这可能会导致问题,因为 jacoco 必须让其他代理检测类。
  • 如何找到覆盖范围?服务器中确定覆盖范围的插件可能存在版本问题。 JaCoCo 在 0.7.5 中更改了 exec 格式。如果使用当前的 JaCoCo 版本,您必须使用最新的声纳插件。我记得 Jenkins 的 JaCoCo 插件有同样的问题。
  • @ShashankKadne: 1) 是的,版本是一样的。 2) 不,服务器上没有运行其他 javaagent。
  • @ArneBurmeister:我使用 EclEmma Java Code Coverage v2.3.3 的 Eclipse 插件“读取”了 jacoco 文件。我使用的 Jacoco 代理版本是最后一个,0.7.7。
  • @ArneBurmeister:我还在我的 Sonar 实例中查看统计数据,该数据在上一个版本中是最新的

标签: java maven sonarqube jacoco jacoco-maven-plugin


【解决方案1】:

已解决,我在服务器端和测试端使用的软件版本不同

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 2016-11-11
    • 2019-01-02
    • 2012-11-02
    • 2015-01-12
    • 2018-05-28
    • 2012-06-11
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多