Comment puis-je configurer lors de la couverture des tests s'exécutent dans maven-cobertura-plugin?

Afin d'affiner les tests sont exécutés à quel moment et dans quel environnement, nous avons plusieurs exécutions mis en place pour le maven-surefire-plugin. Nous avons défini la configuration par défaut de passer tous les tests, puis de les activer pour les exécutions que nous voulons. Cela, en soi, fonctionne bien pour nous.

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
     <skip>true</skip>
  </configuration>
  <executions>
     <execution>
       <id>unit-tests</id>
       <phase>test</phase>
       <goals>
          <goal>test</goal>
       </goals>
       <configuration>
          <skip>false</skip>
          <includes>
             <include>**/*Tests.java</include>
          </includes>
          <excludes>
             <exclude>**/*IntegrationTests.java</exclude>
          </excludes>
       </configuration>
     <execution>
     <execution>
       <id>integration-tests</id>
       <phase>integration-test</phase>
       <goals>
          <goal>test</goal>
       </goals>
       <configuration>
          <skip>false</skip>
          <includes>
             <include>**/*IntegrationTests.java</include>
          </includes>
       </configuration>
     <execution>
   </executions>
</plugin>

Lorsque j'ajoute le maven-cobertura-plugin pour le mix, je rencontre des problèmes. La cobertura objectif s'exécute, et avec succès, les instruments de mes classes. Cependant, pas de tests se faire rouler. Je suppose que c'est parce que l'exécution du test que la couverture est en cours d'exécution en est une qui est sauté. Cependant, je ne trouve pas comment faire pour spécifier la phase et le but de mettre en place pour cette exécution. Quand je tourne sur tous les tests, le résultat semble indiquer que ceux-ci sont encore en cours d'exécution dans ces unitaires-tests d'intégration et des essais de phases/buts.

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>2.4</version>
  <configuration>
     <formats>
        <format>xml</format>
        <format>html</format>
     </formats>
  </configuration>
  <executions>
     <execution>
        <phase>package</phase>
        <goals>
           <goal>cobertura</goal>
        </goals>
     </execution>
  </executions>
</plugin>

Comment ai-je besoin de spécifier une meilleure exécution, de sorte que la couverture sera exécuté à l'encontre de l'instrumentation des classes?

Lorsque vous exécutez vos tests sans Cobertura, comment êtes-vous en train de dire que maven utiliser différentes exécutions? Êtes-vous à l'aide de Profils?
Le unit-tests est en cours d'exécution au cours de la test phase (donc, quand nous faisons mvn package), tandis que integration-tests s'exécute lorsque nous ne mvn install. Je pensais que c'était parce que la phase et l'objectif sont spécifiés dans ces exécutions, même si j'avoue que cela pourrait être de l'incompréhension de ma part. Nous utilisons des profils d'activer ou de désactiver Cobertura, mais elles ne semblent pas liées au choix entre ces autres tests.

OriginalL'auteur CPhelps | 2011-12-09