如何将JaCoCo Agent附加到应用程序服务器

时间:2012-12-19 12:00:46

标签: selenium jboss jenkins jacoco

我正在使用JBoss并运行Jenkins的Selenium测试。我想从Selenium测试中测量代码覆盖率,所以显然我应该将JaCoCo java代理附加到服务器上。我这样做了:

./run.sh -c Default -Djavaagent:[path to Jenkins workspace]/tools/libs/jacocoagent.jar=destfile=[path to Jenkins]/jacoco.exec

但是,从未生成任何输出文件。我在这里指向Jenkins路径中的jacocoagent.jar,但是它是否因此jacocoagent.jar和jacoco.exec必须位于实际的服务器路径中,而不是Jenkins?

1 个答案:

答案 0 :(得分:6)

javaagent需要作为VM选项传递,如下所示:

-javaagent:[path to Jenkins workspace]/tools/libs/jacocoagent.jar=destfile=[path to Jenkins]/jacoco.exec

您将其作为系统属性传递(使用-D)。

您可以通过JAVA_OPTS环境变量将VM选项传递给Jboss应用程序服务器。 (如果在运行run.sh脚本之前导出JAVA_OPTS,run.sh将选择它)。这样的事情应该做:

export JAVA_OPTS="$JAVA_OPTS -javaagent:[path to Jenkins workspace]/tools/libs/jacocoagent.jar=destfile=[path to Jenkins]/jacoco.exec"
./run.sh

有关javaagent配置的更多信息,请访问:

http://www.eclemma.org/jacoco/trunk/doc/agent.html