2011-11-04 220 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执行期间根本没有执行任何安全测试,并且报告总是显示零覆盖。

相关问题