2011-12-13 52 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只能在网站生成时运行。