90 votes

Maven - Sauter la construction des classes de test

Existe-t-il un moyen simple de ne pas construire les classes de test ?

mvn clean install -Dmaven.test.skip=true

151voto

Daniel Points 3893

Según la la documentation sur le Maven Surefire Plugin, -Dmaven.test.skip devrait sauter à la fois la compilation et l'exécution des tests. En revanche, -DskipTests ne passe pas le test exécution Les tests sont toujours compilés.

21voto

johntrepreneur Points 858

Pour être tout à fait clair :

skipTests compilera tout ce qui se trouve dans le <testSourceDirectory> mais n'exécutera pas les.

maven.test.skip volonté PAS compiler des tests, mais Exécution VOLONTAIRE tous les tests compilés qui ont été introduits dans l'application <testOutputDirectory> .

Le comportement des deux éléments ci-dessus est donc opposé. Je voulais juste souligner que maven.test.skip ne saute pas la compilation ET l'exécution si les fichiers de test sont décompressés/copiés/etc. dans le fichier <testOutputDirectory> .

De plus, selon la version de Maven que vous utilisez, il y a aussi maven.test.skip.exec=true qui omet en outre l'exécution des tests similaire à skipTests.

10voto

Pascal Thivent Points 295221

Exécuter un phase qui n'inclut pas test-compile Par exemple compile .

mvn clean compile

8voto

JimP Points 551

Je ne suis pas un expert en maven, mais ce que j'utilise dans mon projet actuel l'est :

mvn clean install -DskipTests=true

En fonction de votre cas d'utilisation :

mvn compile -DskipTests=true

pourrait également vous convenir.

1voto

sermojohn Points 19

J'ai trouvé une solution de contournement dans un autre question qui remplace en fait l'exécution d'un plugin en ajoutant par défaut l'extrait suivant dans votre pom.xml :

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <executions>
        <execution>
          <id>default-testCompile</id>
          <phase>none</phase>
        </execution>
      </executions>
   </plugin>
  </plugins>
</build>

Cela semble fonctionner mais ne désactive absolument pas la phase mais désactive les actions par défaut qu'un plugin définit à une phase spécifique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X