La réalité quand je lance des tests échoue mais je dois les exécuter pour obtenir des fichiers .class qui sont très importants pour mon jar.
Par défaut, lorsque les résultats du test échouent, le jar n'est pas construit. Puis-je ajouter un paramètre dans pom.xml qui l'ignore, pour que je puisse construire le jar en ignorant les résultats des tests?
J'ai lu quelque chose à propos de "Maven Surefire Plugin" mais je ne sais pas comment l'utiliser ...
Veuillez vous référer à surefire: test pour plus de détails, mais les propriétés les plus utiles sont:
- Dmaven.test.failure.ignore = true (ou - DtestFailureIgnore = true ) - ignorera tout échec survenu pendant l'exécution du test
- Dmaven.test.error.ignore = true (obsolète) - ignorera les erreurs survenues pendant l'exécution du test.
- DskipTests - compilerait les classes de test mais ignorerait l'exécution du test
- Dmaven.test.skip = true - ne compilerait même pas les tests
Je crois que dans votre cas où vous voulez compiler des classes de test mais n'échouez pas la construction en raison d'éventuelles erreurs de test et quand même crée le pot .
Vous devez utiliser la première option pour ignorer les échecs de test que vous pouvez toujours consulter une fois la construction terminée.
mvn -Dmaven.test.skip=true package
saute le mojo de test infaillible.
pour ignorer les échecs de test et empêcher maven de s’arrêter, vous pouvez ajouter ceci à la section du fichier pom.xml:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
La solution est:
mvn -fn clean install
exécuter mvn --help
pour les options avancées
Voici l'extrait pour -fn
-fn,--fail-never NEVER fail the build, regardless
of project result
<properties>
<maven.test.skip>true</maven.test.skip>
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
http://jira.codehaus.org/browse/SUREFIRE-319
Ou en ligne de commande
http://maven.Apache.org/maven-1.x/plugins/test/properties.html
maven.test.error.ignore Oui Définissez ceci sur true pour ignorer les erreurs lors des tests. Son utilisation n'est pas recommandée, mais assez pratique à l'occasion
Utilisez -DskipTests = true au lieu de -Dmaven.test.skip = true pour ignorer les tests mais les compiler.
Utiliser -Dmaven.test.failure.ignore = true fonctionnera également mais n’est pas très agréable.