views:

506

answers:

1

I'm having trouble debugging my jbehave tests. I cannot get maven to start the jbehave tests and stop at a breakpoint. I have this in my 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>

and I have tried things like:

$  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

and

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

I can try to use jsadebugd, but I that will probably require immaculate timing to automate, so that sounds like a suboptimal solution, and I feel like the JBehave Maven plugin should provide this functionality. Clearly I have just not found the right piece of documetation yet. Any ideas how I go about this ?

A: 

The following worked for me: export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE"

then start my mvn tests: mvn install

(maven now hangs waiting for the debugger to connect)

Then start Eclipse in a remote debug session, pointing at local host, port 8787 (as above), with appropriate breakpoints set.

bm212