我正在使用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?
答案 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配置的更多信息,请访问: