web-dev-qa-db-fra.com

Emballage Maven sans test (skip tests)

Je suis nouveau chez Maven. J'essaie d'emballer mon projet. Mais, il exécute automatiquement les tests. Les tests insèrent du contenu dans la base de données. Ce n'est pas ce que je veux, je dois éviter d'exécuter des tests lors du conditionnement de l'application. Quelqu'un sait comment exécuter le paquet sans test?

259
vks

Courez maven avec 

mvn -Dmaven.test.skip=true package
449
Giorgos Dimtsas

Il suffit de fournir la commande mentionnée ci-dessous qui ignorera l'exécution des cas de test,

mvn package -DskipTests
141
Jayakumar J

vous pouvez ajouter cette configuration de plugin à votre pom si vous ne voulez pas définir l'argument en ligne de commande:

<plugin>
  <groupId>org.Apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <skipTests>true</skipTests>
  </configuration>
</plugin>
45
smp7d

Notez que -Dmaven.test.skip empêche Maven de construire l'artefact de test-jar. 

Si vous souhaitez ignorer les tests mais créer des artefacts conformément à une utilisation de construction normale:

-Dmaven.test.skip.exec
35
Chris Beach
<properties>
    <maven.test.skip>true</maven.test.skip>
</properties>

est aussi un moyen d’ajouter dans un fichier pom

23
vimal krishna

Si vous essayez ceci dans Windows Powershell, vous obtiendrez cette erreur:

[ERROR] Unknown lifecycle phase ".test.skip=true". You must specify a valid lifecycle phase or a goal in the format...

La raison en est que, dans Powershell, "-" a une signification particulière et pose problème avec maven.

La solution consiste à le préfixer avec un backtick (`), comme si ..

mvn `-Dmaven.test.skip=true install 

Référence: http://kuniganotas.wordpress.com/2011/08/12/invalid-task-test-skiptrue-you-must-specify-a-valid-lifecycle-phase/

22
Rosdi Kasim

Vous pouvez passer l'indicateur maven.test.skip en tant qu'argument JVM pour ignorer les tests en cours lorsque la phase de package (et les phases précédentes du cycle de vie par défaut) est exécutée:

mvn package -Dmaven.test.skip=true

Vous pouvez également passer l'indicateur skipTests seul à l'exécutable mvn. Si vous souhaitez inclure ces informations dans votre POM, vous pouvez créer un nouveau profil dans lequel vous pourrez configurer le maven-surefire-plugin en ignorer les tests .

18
Vineet Reynolds

Vous devez seulement fournir 

-Dmaven.test.skip

Vous n'avez plus besoin d'ajouter =true.

16
Adriaan Koster

Répondre à une question ancienne et acceptée ici. Vous pouvez ajouter cela dans votre pom.xml si vous voulez éviter de passer constamment des arguments en ligne de commande:

  <properties>
    <skipTests>true</skipTests>
  </properties>
10
anubhava

Les tests doivent toujours [1] être exécutés avant le package. Si vous devez désactiver les tests, vous faites quelque chose de mal. En d'autres termes, vous essayez de résoudre le mauvais problème. Déterminez quel est réellement votre problème et posez cette question. Cela ressemble à une base de données.

[1] Vous pouvez ignorer les tests lorsque vous devez générer rapidement un artefact pour une utilisation en développement local, mais en général, la création d'un artefact doit toujours suivre une exécution de test réussie.

4
Ryan Stewart

juste mvn clean install -DskipTests

1
Ravinda lakshan

Vous pouvez ajouter -DskipTests ou -Dmaven.test.skip=true à toute commande mvn pour ignorer les tests. Dans votre cas, ce serait comme ci-dessous:

mvn package -DskipTests

OU

mvn package -Dmaven.test.skip=true
1
Sahil Chhabra

De toute évidence, vous le faites mal. Le test est une partie importante du préemballage. Vous ne devriez pas l'ignorer ou l'ignorer, mais plutôt le faire correctement. Essayez de changer la base de données dans laquelle les données sont insérées (comme test_db). Cela peut prendre un certain temps pour le mettre en place. Et pour vous assurer que cette base de données peut être utilisée pour toujours, vous devez supprimer toutes les données à la fin des tests. JUnit4 a des annotations qui vous facilitent la tâche. Utilisez les annotations @Avant, @After @Test pour les bonnes méthodes. Vous devez y consacrer un peu de temps, mais ça en vaudra la peine!

1
Ozyman
mvn package -Dmaven.test.skip=true
0
mceviker

La meilleure façon de le faire, dans IntelliJ Idea, dans la fenêtre «Maven Project», et cliquez simplement sur le bouton de test. J'espère que je vous ai aidé. Bonne journée :)

0
Vladimir

mvn clean install -Dmaven.test.skip=true 

travaillé pour moi puisque le -Dskip ne fonctionnait plus.

0
Aggie Jon of 87

Pour le paquet maven sans infecter le test maven:

<properties>
    <maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
0
igonejack

Dans Intellij, allez dans Affichage -> Fenêtres d'outils -> choisissez Projets Maven. Dans le menu déroulant Style de vie, cliquez avec le bouton droit de la souris sur le paquet -> choisissez Créer 'votre-projet [paquet]' ...

Entrez cette valeur: package -Dmaven.test.skip=true -f pom.xml dans le champ Ligne de commande. Cliquez sur Appliquer. Un menu déroulant Exécuter les configurations devrait apparaître avec votre commande maven personnalisée créée.

0