2011-12-13 78 views
0

我在一個多模塊項目使用Maven 3和配置的站點有以下報告插件: 1. FindBugs的 2的Cobertura 3.測試管理報告插件在Maven站點

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-site-plugin</artifactId> 
       <version>${maven.site.version}</version> 
       <configuration> 
       <reportPlugins> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>findbugs-maven-plugin</artifactId> 
        </plugin> 
        <plugin> 
         <groupId>org.codehaus.mojo</groupId> 
         <artifactId>cobertura-maven-plugin</artifactId> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-surefire-report-plugin</artifactId> 
        </plugin> 
       </reportPlugins> 
       </configuration> 
     </plugin> 

萬無一失報告如果我使用:

MVN網站-DskipTests =真MVN乾淨後安裝

我點沒有得到正確的報告後mvn網站。 Cobertura相關的測試覆蓋率報告沒有顯示正確的數據,即所有軟件包的測試覆蓋率爲0%。看起來cobertura想要自己運行測試來確定覆蓋範圍。

但是當我運行

MVN網站

這使我的所有試驗的Cobertura和萬無一失報告運行兩次各一次。

我想只運行一次測試並生成所需的報告。請讓我知道在maven中使用上面的reportPlugins來實現這一點的正確方法。

回答

1

Cobertura和surefire報告(網站生成)做兩件不同的事情。因此,你無法避免兩次運行測試 - 一次用於cobertura,一次用於現場。

您可以看到的是將cobertura移出maven默認生命週期並根據需要單獨運行。這樣,mvn site只能在網站生成時運行。