web-dev-qa-db-fra.com

Maven - Passer les classes de test de construction

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

mvn clean install -Dmaven.test.skip=true

Walter

56
Walter White

Selon le documentation du plugin Maven Surefire, -Dmaven.test.skipdevrait ignorer la compilation et l'exécution des tests. En revanche, -DskipTests ignore simplement le test execution: les tests sont toujours compilés.

98
Daniel

Juste pour être explicitement clair:

skipTests compilera tout ce qui est dans le <testSourceDirectory>, mais ne sera pas exécuté eux.

maven.test.skip va PAS compiler tous les tests, mais va exécuter tous les tests compilés qui ont été insérés dans le <testOutputDirectory>

Donc, le comportement de ce qui précède 2 est 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 <testOutputDirectory>.

En outre, en fonction de la version de Maven que vous utilisez, il existe également maven.test.skip.exec=true qui ignore également l'exécution du test similaire à skipTests.

17
johntrepreneur

Exécutez une phase qui n'inclut pas test-compile, par exemple compile.

mvn clean compile
7
Pascal Thivent

Je ne suis pas un expert chez Maven, mais ce que j'utilise dans mon projet actuel est:

mvn clean install -DskipTests=true

En fonction de votre cas d'utilisation, utilisez: 

mvn compile -DskipTests=true

pourrait travailler pour vous aussi.

6
JimP

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

<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 définitivement pas la phase mais désactive les actions par défaut qu'un plugin définit à une phase spécifique.

0