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.


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:


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.


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

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.

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.



0

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

<maven.test.skip>true</maven.test.skip>

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.