web-dev-qa-db-fra.com

Dans IntelliJ, comment déboguer un objectif de test Maven?

En utilisant les fichiers pom intellij et maven, comment puis-je déboguer les tests exécutés à l'intérieur de l'objectif de test maven?

Lorsque je les exécute directement dans le code, cela se plaint de l'absence de profils, que j'ai cochés dans les projets Maven d'intellij.

72
JavaRocky

Qu'en est-il d'un clic droit sur votre objectif et de "Déboguer [votre objectif]" (dans votre cas, l'objectif du test)?

debug goal

25
Colin Hebert

http://maven.Apache.org/plugins/maven-surefire-plugin/examples/debugging.html

Dans IDEA, exécutez votre test en mode débogage "mvn -DforkMode=never test "

Mise à jour : Ouvrez votre configuration d'exécution/débogage, dans l'onglet "Runner", ajoutez -DforkMode=never

enter image description here

(Noté par @ mikeapr4: les nouvelles versions du plugin surefire (2.14+) utilisent mvn -DforkCount=0 test)

159
Hover Ruan

J'exécute des tests avec les options suivantes:

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test

... puis connectez-vous à Maven avec un débogueur distant.

27
Henryk Konsek

-DforkMode=never ne fonctionne plus, il est désormais obsolète dans SureFire.

Utilisation -DforkCount=0 à la place lors de l'utilisation du plugin surefire 2.14+.

12
DesertBlade

La question a été répondue. Mais juste pour partager ma propre expérience. La réponse sélectionnée n'a pas résolu mon problème. Mon code a plusieurs modules.

la réponse de foolshat a apporté un aperçu précieux de mon problème.

J'ai deux solutions, 1. En utilisant votre IDEA, en ajoutant un option VM-DforkMode=never; Doit l'exécuter avec le mode débogage. 2. Configurez un débogage à distance, en spécifiant le socket et dans ce cas forkMode n'est pas nécessaire.

Ce n'est qu'un résumé de ce que j'ai vécu.

9
Robin Loxley

La solution de Colin Hebert ne fonctionne pas non plus pour moi. Mais heureusement, j'ai trouvé un moyen facile de déboguer le test en faisant un clic droit sur le triangle vert qui apparaît à côté de la méthode de test:

exemple de classe de test Java

J'espère que cela vous aide!

1
David DRM