web-dev-qa-db-fra.com

Comment construire un pot en utilisant Maven, en ignorant les résultats des tests?

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

100
user398920

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.

158
Zilvinas

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

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
24
Sean Patrick Floyd
<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

17
I82Much

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.

3
Julien Carsique