Maven - Comment compiler des tests sans les exécuter?

128

Existe-t-il un moyen dans Maven de compiler les tests sans les exécuter? Je veux utiliser l'IDE pour exécuter des tests spécifiques et pas tous.

utilisateur373201
la source
8
Vous devriez probablement soit modifier la question, soit changer la réponse acceptée.
Chiranjib

Réponses:

29

vous pouvez essayer d'utiliser le paramètre -DskipTests

Références:

lweller
la source
Dans netbeans, c'est ce que je faisais. Je vois le mvn suivant -Dmaven.test.skip = true -Dnetbeans.execution = true installation propre puis je vois ce qui suit
user373201
[compilateur: testCompile] Ne compile pas les sources de test [surefire: test] Les tests sont ignorés. Au moins en utilisant Netbeans, si les tests sont ignorés, il ne compile pas les sources de test
user373201
1
peu importe, même si les journaux le disent, il semble toujours compiler des fichiers de test.
user373201
34
cela conduit à sauter complètement les tests: exécution ainsi que compilation, voir la bonne réponse ci-dessous: test-compile. Je l'utilise avec mvn clean compile test-compile dans Eclipse
Yashima
3
@Yashima vous avez raison, cette réponse n'est pas si intelligente ... veuillez accepter la réponse ci-dessous, afin que vous puissiez supprimer celle-ci
lweller
334

Qu'en est-il de la test-compilephase du cycle de vie? Il ne nécessite aucun saut de test, car il se produit avant la testphase. C'est à dire,

$ mvn test-compile

Et.. Voila.

L'introduction au cycle de vie de build explique plus en détail.

RonU
la source
7
C'était exactement ce dont j'avais besoin, merci. Je ne connais pas le demandeur d'origine; mais je cherchais à compiler les tests, puis à les exécuter avec un testeur séparé.
Mike Miller
Je suis venu ici plus souvent que je n'aime l'admettre ...
Daniel Storch
31

Pour simplement compiler les tests et le code, sans les exécuter, faites simplement:

mvn test-compile
orange77
la source
7
Je pense que test-compile inclut la compilation
Whimusical
d'accord avec @Whimusical. De plus, cela exécutera l'objectif de compilation 2 fois.
Gabriel Petrovay
26

Lorsque vous exécutez un objectif qui inclura la phase de test (comme un package), vous pouvez faire deux choses:

  • Utilisez la commande mvn -DskipTests=true package . Cela compilera tous les tests mais ne les exécutera pas.
  • Ou mvn -Dmaven.test.skip=true package . Cela ne compilera ni n'exécutera la branche de test.
Martins
la source
3

Vous pouvez également utiliser l' maven.test.skip.execoption.

mvn -Dmaven.test.skip.exec=true

Maven compilera les tests sans les exécuter. J'utilise cette option dans tous mes projets régulièrement.

Stéphan
la source
1

Si vous voulez vraiment compiler uniquement les tests (sautez toutes les autres phases comme compile), cela fera l'affaire

mvn org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile

Voir les liaisons de plug - in du cycle de vie par défaut .

schnatterer
la source
0

Si vous fichier settings.xml, vous pouvez également utiliser

<maven.test.skip>true</maven.test.skip>
ménapole
la source
5
Vous ne devriez jamais faire ça. Si vous en avez besoin, définissez-le sur la ligne de commande, mais jamais de façon permanente.
Sean Patrick Floyd
13
Jamais dit que vous devriez ou ne devriez pas le faire. Fournir simplement une connaissance de l'option.
menapole le
4
Cela empêche maven de compiler les tests non plus.
Mike Miller
3
@Sean Patrick Floyd: pourquoi pas? ce n'est PAS permanent, ce serait le mettre dans le pom.xml.
Balázs Németh