J'ai un projet avec plusieurs modules. Lorsque tous les tests sont réussis, le test Maven les exécute tous.
Lorsque les tests échouent dans le premier module, maven ne passera pas au prochain projet. J'ai testFailureIgnore défini sur true dans les paramètres Surefire, mais cela n'aide pas.
Comment faire pour que Maven exécute tous les tests?
Je viens de trouver le paramètre "-fae", qui oblige Maven à exécuter tous les tests sans s'arrêter en cas d'échec.
De la documentation:
-fae
,--fail-at-end
N'échouez que la construction par la suite; autorisez toutes les générations non impactées à continuer
-fn
,--fail-never
NE JAMAIS échouer la construction, quel que soit le résultat du projet
Donc, si vous testez un module , vous êtes en sécurité avec -fae
.
Sinon, si vous avez plusieurs modules et si vous voulez tous les tester (même ceux qui dépendent du module de tests défaillant), vous devez exécuter mvn clean install -fn
.-fae
continuera avec le module dont le test a échoué (exécutera tous les autres tests), mais tous les modules qui en dépendent seront ignorés.
Pouvez-vous tester avec surefire 2.6 et soit configurer surefire avec testFailureIgnore=true
. Ou sur la ligne de commande:
mvn install -Dmaven.test.failure.ignore=true
Essayez d’ajouter la configuration suivante pour le plugin surefire dans votre pom.xml of projet racine:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Une réponse rapide:
mvn -fn test
Fonctionne avec les constructions de projet imbriquées.