2012-12-19 127 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

相關問題