web-dev-qa-db-fra.com

comment déboguer plus facilement le test maven surefire (en utilisant Eclipse comme serveur de débogage)

J'utilise maven/surefire/Eclipse pour écrire du code et ensuite le tester/le déboguer.

La méthode standard consiste à utiliser la propriété maven.surefire.debug maven. Par défaut, lorsque cette propriété est activée, maven commence à écouter sur le port 5005 et je peux me connecter au processus de débogage à l'aide du débogueur distant. Lorsque le test est terminé, le débogueur distant se déconnecte du serveur.

Ce processus implique deux étapes lorsque vous avez fini d'utiliser Eclipse:

  1. Run Maven
  2. Se connecter en utilisant la configuration de lancement à distance

Ce que je voudrais réaliser est de réduire cela à:

  1. Run Maven

J'ai constaté que la définition de la propriété maven.surefire.debug sur certaines options de débogage distant modifie le comportement de débogage distant. Ainsi, lorsque je spécifie i.e.

-Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transport = dt_socket, serveur = n, adresse = 5005"

then build essaiera de se connecter à mon processus Eclipse en écoutant sur le port 5005. De cette façon, j'inverserai les rôles client/serveur par défaut de maven et d'Eclipse.

Cependant, il y a un gros problème avec cette approche. Cela ne me donne rien, car après la construction de maven, Eclipse cesse d'écouter sur le port du serveur. C'est la partie que je ne comprends pas. Lorsque je me connecte en tant que client de débogage à partir d'Eclipse, par exemple sur le serveur WebLogic, cela me permet de me connecter/déconnecter librement autant de fois que je le souhaite.

Tout le monde sait si cela est normal ou peut-être dois-je spécifier des options supplémentaires pour faciliter le débogage des tests Maven?

25
mateusz.fiolka

Manière simple:

1. Open the Debug As > .. dialogue box
2. In the goal text box, give
     -DforkMode=never test
3. Run the debug project
20
Zeba Ahmad

Un peu tard dans la contribution mais a pensé que cela en valait la peine.

Dans la configuration de débogage Eclipse, créez la configuration de débogage "Maven build":

Objectifs = test -Dmaven.surefire.debug

Profiles = myconfigprofile, weblogic

ou pour un TestSuite spécifique:

Objectifs = -Dmaven.surefire.debug -Dtest = com.myorg.mypkg/MyTestSuite.Java test

Profiles = myconfigprofile, weblogic

N.B. Ne mettez pas les accessoires dans les "arguments JRE/jvm" car cela ne semble pas faire de pause

Crée une configuration "Remote Java Application" supplémentaire:

Host = localhost

Port = 5005

L'exécution/le débogage de votre build MVN s'arrête et écoute par défaut sur 5005.

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

19
wmorrison365

Si vous utilisez m2Eclipse, pourquoi ne pas simplement cliquer avec le bouton droit de la souris alors Déboguer> Test Maven ?

2
Pascal Thivent

si vous utilisez Maven 2.0.8+, ce sera très simple,

S'il vous plaît se référer ma réponse.

Maven construire le débogage dans Eclipse

0
Rajesh