5

我正在使用 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?

4

1 回答 1

7

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

于 2012-12-27T13:41:06.250 回答