web-dev-qa-db-de.com

wie man maven surefire test einfacher debuggt (mit Eclipse als debug server)

Ich benutze maven/surefire/Eclipse, um Code zu schreiben und ihn später zu testen/debuggen.

Die Standardmethode hierfür ist die Verwendung der maven-Eigenschaft maven.surefire.debug. Wenn diese Eigenschaft aktiviert ist, beginnt maven standardmäßig, Port 5005 abzuhören, und ich kann mithilfe des Remote-Debuggers eine Verbindung zum Debugging-Prozess herstellen. Wenn der Test abgeschlossen ist, trennt der Remote-Debugger die Verbindung zum Server.

Dieser Vorgang umfasst bei Verwendung in Eclipse zwei Schritte:

  1. Run Maven
  2. Stellen Sie die Verbindung über die Remote-Startkonfiguration her

Was ich erreichen möchte, ist dies zu reduzieren auf:

  1. Run Maven

Ich habe festgestellt, dass das Setzen der Eigenschaft maven.surefire.debug auf einige Remote-Debug-Optionen das Remote-Debug-Verhalten ändert. Wenn ich also spezifiziere, d.h.

-Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transport = dt_socket, server = n, address = 5005"

dann versucht build, eine Verbindung zu meinem Eclipse-Prozess herzustellen, der Port 5005 überwacht. Auf diese Weise invertiere ich die Standard-Client/Server-Rollen von Maven und Eclipse.

Bei diesem Ansatz gibt es jedoch ein großes Problem. Es gibt mir nichts, da Eclipse nach Abschluss der Maven-Erstellung nicht mehr den Server-Port überwacht. Dies ist der Teil, den ich nicht verstehe. Wenn ich von Eclipse aus als Debug-Client eine Verbindung zu beispielsweise einem WebLogic-Server herstelle, kann ich beliebig oft eine Verbindung herstellen oder trennen.

Weiß jemand, ob dies normal ist oder ob ich zusätzliche Optionen angeben muss, um das Debuggen von Maven-Tests zu vereinfachen?

25
mateusz.fiolka

Einfacher Weg:

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

Ein bisschen zu spät, aber ich dachte, dass es sich trotzdem lohnt.

Erstellen Sie in der Eclipse-Debug-Konfiguration die Debug-Konfiguration "Maven Build":

Goals = -Dmaven.surefire.debug test

Profile = myconfigprofile, weblogic

oder für eine bestimmte TestSuite:

Goals = -Dmaven.surefire.debug -Dtest = com.myorg.mypkg/MyTestSuite.Java-Test

Profile = myconfigprofile, weblogic

N.B. Setzen Sie die Requisiten nicht in "JRE/jvm-Argumente" ein, da dies nicht zu pausieren scheint

Zusätzliche "Remote Java Application" Konfiguration erstellen:

Host = localhost

Port = 5005

Das Ausführen/Debuggen Ihres mvn-Builds stoppt und lauscht standardmäßig auf 5005.

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

19
wmorrison365

Wenn Sie m2Eclipse verwenden, warum nicht einfach Rechtsklick dann Debug> Maven Test ?

2
Pascal Thivent

wenn Sie Maven 2.0.8+ verwenden, wird es sehr einfach sein,

Bitte beziehen Sie sich auf meine Antwort.

Maven Build Debug in Eclipse

0
Rajesh