2011-11-04 16 views
7

Después de leer esto: What is the proper way to use Cobertura with Maven 3.0.2 y esto: http://www.wakaleo.com/blog/292-site-generation-in-maven-3Cobertura de cobertura de código es 0% cuando se utiliza Maven 3

mi archivo POM se ve así:

<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> 

Después de ejecutar Cobertura: Cobertura yo todavía no recibas ningún informe En la carpeta de cobertura de destino está vacía y no hay una carpeta llamada sitio. ¿Alguien puede decirme qué hice mal? Cuando estaba usando un enfoque más antiguo con maven 2.2, todo funcionó bien, pero con M3 obtuve malos resultados.

+1

Puede usted ver el archivo cobertura.ser en cualquier parte tu carpeta de compilación? De esto es de lo que está hecho el informe, así que verifique sus rutas de directorio. Si ese archivo no existe, ¿sus clases instrumentadas se están creando en su carpeta de compilación? – Brad

Respuesta

1

Ok, problema resuelto. Extrañamente después de algunas renovaciones y reconstrucciones todo comenzó a funcionar bien. El archivo Ser estaba presente en el directorio y ahora todos los informes se generan correctamente. Estoy bastante sorprendido por eso :)

+0

no parece ser la solución, tampoco funciona para mí –

+1

cómo solucionarlo? todavía 0 no importa remite, reconstruye – Stella

1

Ok, lo que he encontrado es que uno podría tener que incluir explícitamente **/* Test.java en la sección de configuración de maven-surefire-plugin al configurar ejecuciones especiales en el padre pom o cuando se usa un padre ... en fin, no ejecutó ninguna prueba segura durante la ejecución de la cobertura y los informes siempre mostraron cero cobertura.

Cuestiones relacionadas