Frage

Ich habe Probleme beim Debuggen meiner JBehave Tests. Ich kann nicht Maven die JBehave Tests beginnen und an einem Haltepunkt zu stoppen. Ich habe dies in meinem pom:

<pluginManagement>
 <plugins>
   <plugin>
     <groupId>org.jbehave</groupId>
     <artifactId>jbehave-maven-plugin</artifactId>
     <version>2.0.1</version>
   </plugin>
 </plugins>
</pluginManagement>
<plugins>
 <plugin>
   <groupId>org.jbehave</groupId>
   <artifactId>jbehave-maven-plugin</artifactId>
   <executions>
     <execution>
       <id>run-scenarios-found</id>
       <phase>test</phase>
       <configuration>
         <scenarioIncludes>
           <scenarioInclude>**/scenario/**/*${test}.java</scenarioInclude>
         </scenarioIncludes>
         <scenarioExcludes>
           <scenarioExclude>**/*Steps.java</scenarioExclude>
         </scenarioExcludes>
       </configuration>
       <goals>
         <goal>run-scenarios</goal>
       </goals>
     </execution>
   </executions>
 </plugin>
</plugins>

und ich habe versucht, Dinge wie:

$  mvn -e -o -Dtest=MyTest -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" clean test

und

$ export MVN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" ; mvn -Dtest=MyTest clean test 

Ich kann versuchen, jsadebugd , aber ich, dass wahrscheinlich makellos Timing zu automatisieren, so dass klingt wie eine suboptimale Lösung, und ich fühle mich wie die JBehave Maven Plugin sollte diese Funktionalität bereitstellen benötigen. Offensichtlich habe ich einfach nicht die richtigen Stück-Dokumentation über noch nicht gefunden. Irgendwelche Ideen, wie ich mich über das?

War es hilfreich?

Lösung

In der folgenden für mich gearbeitet: Export MAVEN_OPTS = "- Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspendieren = y, address = 8787 -Xnoagent -Djava.compiler = NONE"

dann meine mvn Tests starten: mvn install

(Maven hängt jetzt warten auf den Debugger zu verbinden)

Dann Eclipse-Start in einer Remote-Debug-Sitzung, auf dem lokalen Host zeigt, Port 8787 (wie oben), mit entsprechenden Haltepunkten setzen.

Andere Tipps

Wäre es nicht einfacher, die Tests nicht mit Maven zu beginnen, sondern in der IDE mit JUnit? Dann können Sie den Debugger direkt verwenden? Ich mache es normalerweise so, dass der CI-Server Maven verwendet JBehave auszuführen, aber in dem IDE, ziehe ich einen direkteren Weg der Ausführung.

Das funktioniert für mich:

  1. in Eclipse Ausführen -> Debug-Konfigurationen ...
  2. Wählen Sie Maven bauen und klicken Sie auf Neu
  3. Stellen Sie die Ziele (clean very in meinem Fall) und mögliche Parameter
  4. Hit Debug

MVN--o -Dmaven.surefire.debug = "- Xdebug -Xrunjdwp: transport = dt_socket, server = y, suspendiert = y, address = 8787 -Xnoagent -Djava.compiler = NONE" Integration-Test

Diese Linie war für mich perfekt. Richten Sie Ihre JBehave Projekt in Eclipse mit dem Debug-Port (8787) und schnell an den Debugger anschließen, während mvn wartet auf Ihr Eclipse-Projekt zu verbinden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top