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?
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
Vous devez vous connecter pour publier un commentaire.
Vous note de la documentation que
cobertura:cobertura
cobertura
(pas ledefault
cycle de vie)test
avant d'exécuter lui-mêmeDonc, le câblage en conséquence, elle devrait automatiquement entraîner l'instrumentation et de test.
cobertura
est-il une manière que je peux spécifier le cycle de vie dans mon exécutions? Comme je l'ai dit, l'instrumentation semble être le cas, il m'a juste dit que les tests sont ignorés.Si vous fil comme suggéré (mojo.codehaus.org/cobertura-maven-plugin/usage.html), il sera automatiquement instrument, l'exécution des tests et ensuite de générer le rapport.
La configuration de base travaillé avec une dépouillé de projet, mais ne parvient toujours pas dans mon projet de construction. Il semble donc que quelque chose d'autre dans le pom est interférents.
Que vous êtes en mesure d'obtenir pour travailler dans le configuration est un bon début. À partir de cet état, je vous suggère d'ajouter votre code source (en plus bien sûr tout
dependency
modifications à la POM). Voir comment que va. Ensuite modifier le POM plus loin.Peut-être ce qu'il demande, est ce que j'essaie de faire aussi bien. Je peux générer le cobertura rapports par la construction avec "mvn cobertura:cobertura" mais mon build est exécuté avec "mvn clean install". Ce n'exécuter couverture des tests pour vérifier la couverture, mais de ne pas construire le rapport. J'aimerais (et peut-être le po trop) pour que ces rapports générés à chaque fois que je construis avec "mvn clean install" ou "mvn clean package". Est-ce possible?
OriginalL'auteur Sri Sankaran