2010-09-24 11 views

Antwort

21

Wie wäre es mit einem Rechtsklick auf Ihr Ziel und "Debug [Ihr Ziel]" (in Ihrem Fall das Testziel)?

debug goal

+0

Ahh dachte nicht daran. Zu spät an einem Freitag Nachmittag: D Danke. – JavaRocky

+12

Angenommen, Sie möchten Haltepunkte verwenden, ist diese Antwort nicht ausreichend. Sehen Sie stattdessen die Antwort von Hover. – dgtc

20

ich ausführen Tests mit den folgenden Optionen:

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

... und dann eine Verbindung mit Remote-Debugger Maven.

+0

Haben Sie es geschafft, log4j/logging zum Laufen zu bringen? Ich habe sogar die -Dlog4j.configuration = enthalten, aber die Logging-Anweisungen werden nicht gedruckt. – javadba

131

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

In IDEA, führen Sie Ihren Test im Debug-Modus "mvn -DforkMode=never test"

Aktualisiert: Ihren Run/Debug-Konfiguration öffnen, in "Runner" Registerkarte hinzufügen -DforkMode=never

enter image description here

(Notiert von @ mikeapr4: neuere Versionen des todsicheren Plugins (2.14+) verwenden mvn -DforkCount=0 test)

+0

Das hat bei mir funktioniert. Ich verwende den folgenden Befehl, um das Testziel in Idee 10 zu debuggen. –

+1

In meinem Multi-Modul-Projekt war dies die einzige Option, die bei Intellij für mich funktionierte. – nash

+22

Mit IDEA 11, fand ich in Maven Projekten, musste ich rechts auf den Test für das Modul, das ich testen wollte klicken. Dies erstellt eine Run/Debug-Konfiguration. Bearbeiten Sie dann diese neue Konfiguration, klicken Sie auf die Registerkarte "Runner" und fügen Sie -DforkMode = never in den VM-Optionen hinzu. OK klicken. Legen Sie einen Haltepunkt fest und klicken Sie dann auf das Debug-Symbol, um die neue Debug-Konfiguration auszuführen.Eine Kombination aus den oben genannten, also danke für die Tipps. – foolshat

7

Die Frage wurde beantwortet. Aber nur um meine eigenen Erfahrungen zu teilen. Die ausgewählte Antwort hat mein Problem nicht gelöst. Mein Code hat mehrere Module.

Die Antwort von Nobshat brachte wertvolle Einsichten zu meinem Problem.

Ich habe zwei Lösungen, 1. Ihre Idee aufzugreifen, durch das Hinzufügen einer VM Option-DforkMode=never; Muss es mit Debug-Modus ausführen. 2. Richten Sie ein Remote-Debugging ein und geben Sie den Socket an. In diesem Fall ist der forkMode nicht erforderlich.

Es ist nur eine Zusammenfassung für das, was ich durchgemacht habe.

+0

Vielen Dank! – tsykora

8

-DforkMode=never funktioniert nicht mehr, es ist jetzt in SureFire veraltet.

Verwenden Sie stattdessen -DforkCount=0, wenn Sie das surefire-Plug-in 2.14+ verwenden.

+2

Das funktioniert, aber diese Antwort ist sicher verwirrend. –

+0

Surefire-Dokumente sagen, stattdessen 'forkCount' und' reuseForks' zu verwenden, also denke ich, dass das obige sagen sollte: "Verwenden Sie stattdessen' -DforkCount = 0'. " Ich habe '-DForkCount = 0' versucht (' reuseForks' sollte nicht wichtig sein, wenn es keine Gabeln gibt), aber mein Breakpoint hat nie ausgelöst. Es stolpert mit "-DforkMode = nie" (Maven 3.2.1, IDEA 13.1.2). – mmindenhall

Verwandte Themen