Je construis un projet Maven avec la configuration suivante SureFire :
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.maven-surefire-plugin}</version>
<configuration>
<includes>
<include>**/*Test.Java</include>
</includes>
</configuration>
</plugin>
Le problème est que, lorsque je le construis avec mvn clean install -DskipTests=true
, les tests sont toujours en cours d'exécution. Quel pourrait être le problème?
J'ai essayé à la fois -DskipTests
(qui provient du site Web Maven ) et -DskipTests=true
, qui est ajouté par IntelliJ Idea lorsque je coche la case "ignorer les tests".
Je n'utilise aucun code Maven settings.xml
.
EDIT Si je commente la configuration du plug-in SureFire, le paramètre se comporte comme prévu. Quel pourrait être le problème avec la configuration ci-dessus?
Ce que tu as fait devrait fonctionner. Comment déboguer cela plus loin:
Exécutez mvn help:effective-pom
pour voir l’ensemble du POM que Maven exécutera. Recherchez test
(insensible à la casse) pour voir s'il y a quelque chose d'étrange.
Exécutez mvn test -X
pour obtenir le résultat du débogage. Ceci imprimera les options utilisées pour configurer le maven-surefire-plugin
. Assurez-vous de rediriger la sortie vers un fichier!
Dans le journal, vous verrez
[DEBUG] Configuring mojo 'org.Apache.maven.plugins:maven-surefire-plugin:2.15:test' with basic configurator -->
et puis, quelques lignes en dessous:
[DEBUG] (s) runOrder = filesystem
[DEBUG] (s) skip = false
[DEBUG] (s) skipTests = false
Ces valeurs signifient que les tests ne sont pas ignorés.
Utilisez-vous une version récente du plugin? Vérifier ici . Peut-être que cette option n'était pas supportée pour votre version.
Maven connaît deux types de paramètres pour ignorer les tests:
-Dmaven.test.skip=true
ou
-DskipTests=true
La documentation de surefire-plugin ne mentionne que la première que vous n'avez pas encore essayée.
Je ne sais pas pourquoi la bonne réponse n'a pas encore été postée. Dans les anciennes versions de SureFire, l'indicateur permettant de compiler des tests sans les exécuter est -Dmaven.test.skip.exec
.
Essayez la configuration suivante pour votre plugin surefire
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.surefire.plugin}</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
ce n'est pas -DskipTests = true c'est juste -DskipTests a considéré que vous utilisiez surfire version 2.3
alors vous le lancez comme
mvn install -DskipTests