Je suis nouveau à Maven. J’essaye d’emballer mon projet. Mais, il exécute automatiquement les tests. Les tests insèrent du contenu dans la firebase database. Ce n’est pas ce que je veux, je dois éviter d’exécuter des tests pendant le package de l’application. Quelqu’un sait-il comment exécuter le paquet sans tester?
Exécuter -Dmaven.test.skip=true
avec -Dmaven.test.skip=true
Il suffit de fournir la commande mentionnée ci-dessous qui ignorera l’exécution des cas de test,
mvn package -DskipTests
vous pouvez append cette configuration de plugin à votre pom si vous ne voulez pas définir l’argument de ligne de commande:
org.apache.maven.plugins maven-surefire-plugin true
Notez que -Dmaven.test.skip empêche Maven de créer l’artefact test-jar.
Si vous souhaitez ignorer les tests mais créer des artefacts conformément à une utilisation normale de la construction:
-Dmaven.test.skip.exec
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, le ” -
” a une signification particulière et pose problème avec maven.
La solution consiste à le faire précéder d’un backtick (`), comme ça.
mvn `-Dmaven.test.skip=true install
true
est aussi un moyen d’append un fichier pom
Vous pouvez passer l’indicateur maven.test.skip
tant qu’argument JVM pour ignorer les tests en cours d’exécution lorsque la phase du package (et les 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 pouvez configurer le maven-surefire-plugin
pour ignorer les tests .
Vous devez seulement fournir
-Dmaven.test.skip
Plus besoin du ‘= true’ là-bas.
Répondre à une question ancienne et acceptée ici. Vous pouvez append ceci dans votre fichier pom.xml si vous voulez éviter de passer des arguments de ligne de commande tout le temps:
true
Les tests doivent toujours [1] s’exécuter 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 votre problème et posez cette question. Cela ressemble à une firebase database.
[1] Vous pouvez ignorer des tests lorsque vous devez générer rapidement un artefact pour une utilisation de développement locale, mais en général, la création d’un artefact doit toujours suivre un test réussi.
Vous faites évidemment le contraire. Les tests sont 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 firebase database dans laquelle il insère les données (comme test_db). Cela peut prendre du temps pour le configurer. Et pour vous assurer que cette firebase database 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 @Before, @After @Test pour les bonnes méthodes. Vous devez y passer du temps, mais cela en vaudra la peine!
mvn clean install -Dmaven.test.skip=true
a travaillé pour moi puisque le -Dskip
ne fonctionnait plus.
mvn package -Dmaven.test.skip=true
La meilleure et la plus simple façon de le faire, dans IntelliJ Idea, dans la fenêtre «Projet Maven», et ne cliquez pas sur le bouton de test. J’espère que je t’ai aidé Bonne journée 🙂
Dans Intellij, accédez à Affichage -> Outils Windows -> Choisissez Projets Maven. Dans la liste déroulante Lifecyle, cliquez avec le bouton droit sur le package -> choisissez Create ‘your-project [package]’ …
Entrez cette valeur: package -Dmaven.test.skip=true -f pom.xml
dans le champ Ligne de commande. Cliquez sur Appliquer et un menu déroulant Exécuter les configurations devrait apparaître avec votre commande maven personnalisée créée.