2013-03-26 31 views
0

我想爲我的GWT maven項目生成代碼覆蓋率。如何設置GWT,maven,jacoco的覆蓋範圍?

它與我的JUnit測試

mvn test jacoco:report 

但是當我運行

mvn gwt:test jacoco:report 

會生成空白報告。

我在運行gwt:tests時如何獲得代碼覆蓋率?

的pom.xml

GWT:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>gwt-maven-plugin</artifactId> 
    <version>2.5.1</version> 
<configuration> 
    <module>${gwtModule}</module> 
    <gwtVersion>2.5.1</gwtVersion> 
    <runTarget>https://localhost:8443/dashboard/mainview.jsp</runTarget> 
    <noServer>true</noServer> 
    <sourcesOnPath>true</sourcesOnPath> 
    <hostedWebapp>${war.target}</hostedWebapp> 
    <mode>HtmlUnit</mode> 
</configuration> 
<executions> 
    <execution> 
     <configuration> 
      <extraJvmArgs>-Xmx512m</extraJvmArgs> 
     </configuration> 
     <goals> 
      <goal>compile</goal> 
      <goal>test</goal> 
     </goals> 
    </execution> 
</executions> 

Jacoco:

<plugin> 
<groupId>org.jacoco</groupId> 
<artifactId>jacoco-maven-plugin</artifactId> 
<version>0.6.2.201302030002</version> 
<configuration> 
    <destfile>${basedir}/target/coverage-reports/jacoco-unit.exec</destfile> 
    <datafile>${basedir}/target/coverage-reports/jacoco-unit.exec</datafile> 
</configuration> 
<executions> 
    <execution> 
     <id>jacoco-initialize</id> 
     <goals> 
      <goal>prepare-agent</goal> 
     </goals> 
    </execution> 
    <execution> 
     <id>jacoco-site</id> 
     <phase>package</phase> 
     <goals> 
      <goal>report</goal> 
     </goals> 
    </execution> 
</executions> 

+0

您是否嘗試過JBoss的['jacoco-gwt-maven-plugin'](http://search.maven.org/#artifactdetails%7Corg.jboss.errai%7Cjacoco-gwt-maven-plugin%7C0.5.4。 201202141554%7Cmaven-插件)? – 2013-03-26 14:16:56

+0

我嘗試過但我沒有得到它運行。 你有關於如何使用它的例子嗎? – kesse 2013-03-26 15:57:16

+0

https://github.com/search?q=%22jacoco-gwt-maven-plugin%22&type=Code也許? – 2013-03-26 16:15:45

回答

2

輸入此命令到命令行'

mvn help:describe -Dplugin=org.jboss.errai:jacoco-gwt-maven-plugin -Ddetail=true 

您將從jacoco-gwt-maven-plugin獲得詳細的輸出結果。在此列表中,您可以看到可以設置的所有配置參數。在創建報告時出現錯誤:basedir c:\ Users ......不存在與運行我在上面指定的命令時看到的snapshotDirectory設置有關。當你的項目編譯時,它會創建一個放置所有運行時類的文件夾。你需要找到你的maven pom將這些類文件放在哪裏,然後在你的pom中指定這個路徑。所以說你的類文件的路徑位置是「目標/測試類」,那麼你的POM將是:

<plugin> 
    <groupId>org.jboss.errai</groupId> 
    <artifactId>jacoco-gwt-maven-plugin</artifactId> 
    <version>0.5.4.201202141554</version> 
    <configuration> 
    <snapshotDirectory>${project.build.directory}/test-classes</snapshotDirectory> 
    </configuration> 
</plugin> 

另外一兩件事要注意KESSE是你最初的問題是與jacoco Maven的做插件org.jacoco。我也未能使用此插件與GWT測試用例一起獲得覆蓋結果。然而,上面的Thomas Broyer指出了你來自org.jboss.errai組的jacoco-gwt-maven-plugin。這個Errai小組是JBoss開發人員社區的一部分,這個插件與Errai框架相關。因此,爲了從使用GWT測試用例的Errai插件獲得代碼覆蓋率結果,您必須使用Errai框架。要了解有關Errai框架的更多信息,請訪問http://errai.github.io/

+0

我面臨着類似的問題,我讀過這篇文章,並使用jacoco-gwt-maven-plugin,現在一切正常,但覆蓋率報告顯示0%。請指出何時會發生。 – Jayesh 2015-04-18 11:45:57

+0

爲什麼會發生這種情況有很多原因,你可以包括你如何配置jacoco插件的pom,或者在stackoverflow上打開一個單獨的問題並指向我?包括儘可能多的信息,你可以喜歡你使用的完整的pom,你運行的測試用例的例子應該給你一些代碼覆蓋率,我會盡我所能幫助你。 – Adrian 2015-05-02 14:33:38