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?
Courez maven avec
mvn -Dmaven.test.skip=true package
Il suffit de fournir la commande mentionnée ci-dessous qui ignorera l'exécution des cas de test,
mvn package -DskipTests
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>
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
<properties>
<maven.test.skip>true</maven.test.skip>
</properties>
est aussi un moyen d’ajouter dans un fichier pom
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
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 .
Vous devez seulement fournir
-Dmaven.test.skip
Vous n'avez plus besoin d'ajouter =true
.
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>
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.
juste mvn clean install -DskipTests
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
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!
mvn package -Dmaven.test.skip=true
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 :)
mvn clean install -Dmaven.test.skip=true
travaillé pour moi puisque le -Dskip
ne fonctionnait plus.
Pour le paquet maven sans infecter le test maven:
<properties>
<maven.test.failure.ignore>true</maven.test.failure.ignore>
</properties>
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.