web-dev-qa-db-fra.com

Maven -DskipTests ignoré

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.

  • Version Maven: 2.2.1
  • Surefire plugin: 2.3

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?

23
NeplatnyUdaj

Ce que tu as fait devrait fonctionner. Comment déboguer cela plus loin:

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

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

  3. Utilisez-vous une version récente du plugin? Vérifier ici . Peut-être que cette option n'était pas supportée pour votre version.

9
Aaron Digulla

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.

26
Jack

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.

1
Chris

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>
0
Andrei Nicusan

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

0
Raji