2012-12-19 74 views
4

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

./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?

回答

4

的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

相关问题