2011-11-04 218 views
7

當看完這個: What is the proper way to use Cobertura with Maven 3.0.2 這: http://www.wakaleo.com/blog/292-site-generation-in-maven-3的Cobertura代碼覆蓋率爲0%使用Maven 3

我POM文件看起來像這樣:

<build> 
    <plugins> 
     ..... 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>3.0</version> 
      <configuration> 
       <reportPlugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-javadoc-plugin</artifactId> 
         <version>2.7</version> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-jxr-plugin</artifactId> 
         <version>2.1</version> 
         <configuration> 
          <aggregate>true</aggregate> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-report-plugin</artifactId> 
         <version>2.6</version> 
         <configuration> 
          <skip>true</skip> 
          <useFile>false</useFile> 
          <argLine>-Xmx512m</argLine> 
          <systemProperties> 
           <property> 
            <name>generateReport</name> 
            <value>html</value> 
           </property> 
          </systemProperties> 
         </configuration> 
         <executions> 
          <execution> 
           <id>unit-test</id> 
           <phase>test</phase> 
           <goals> 
            <goal>test</goal> 
           </goals> 
           <configuration> 
            <skip>false</skip> 
            <includes> 
             <include>**/UnitTest*.java</include> 
             <include>**/*UnitTest.java</include> 
             <include>**/*Scenarios.java</include> 
            </includes> 
           </configuration> 
          </execution> 
          <execution> 
           <id>integration-test</id> 
           <phase>test</phase> 
           <goals> 
            <goal>test</goal> 
           </goals> 
           <configuration> 
            <skip>${integrationTestsSkip}</skip> 
            <includes> 
             <include>**/*IntegrationTest.java</include> 
            </includes> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>cobertura-maven-plugin</artifactId> 
         <version>2.5.1</version> 
         <configuration> 
          <instrumentation> 
           <includes> 
            <include>**/UnitTest*.class</include> 
            <include>**/*UnitTest.class</include> 
            <include>**/*Scenarios.class</include> 
           </includes> 
          </instrumentation> 
         </configuration> 
         <executions> 
          <execution> 
           <id>clean</id> 
           <phase>pre-site</phase> 
           <goals> 
            <goal>clean</goal> 
           </goals> 
          </execution> 
          <execution> 
           <id>instrument</id> 
           <phase>site</phase> 
           <goals> 
            <goal>instrument</goal> 
            <goal>cobertura</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-checkstyle-plugin</artifactId> 
         <version>2.6</version> 
        </plugin> 
       </reportPlugins> 
      </configuration> 
     </plugin> 

     ...... 



    </plugins> 
</build> 

運行的Cobertura後:的Cobertura我仍然沒有得到任何報告。在目標cobertura文件夾中爲空,並且沒有稱爲站點的文件夾。誰能告訴我我做錯了什麼?當我用maven 2.2使用老式的方法時,一切正常,但我用M3取得了不好的結果。

+1

你能看到的任何地方cobertura.ser文件你的build文件夾?這是報告的內容,因此請檢查您的目錄路徑。如果該文件不存在,您的工具類將在您的構建文件夾中創建? – Brad

回答

1

好的,問題解決了。奇怪的是經過幾次刷新和重建,一切都開始正常工作。 Ser文件出現在目錄中,現在所有報告都正確生成。我非常驚訝的是:)

+0

它似乎並不是解決方案,它不適用於我 –

+1

如何解決它?不管引用,重建,它仍然是0 – Stella

1

好吧,我發現它是一個人可能必須明確包括在Maven-surefire插件的配置部分中的**/* Test.java在父級配置特殊執行時pom或者當使用父母的時候.....另外,它在cobertura執行期間根本沒有執行任何安全測試,並且報告總是顯示零覆蓋。

相關問題