调试JBehave场景

时间:2009-04-08 17:36:03

标签: java debugging testing bdd

我在调试jbehave测试时遇到问题。我不能让maven开始jbehave测试并在断点处停下来。我在我的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>

我尝试过这样的事情:

$  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

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

我可以尝试使用jsadebugd,但我可能需要完美无暇的自动化时间,因此这听起来像是次优的解决方案,我觉得JBehave Maven插件应该提供此功能。很明显,我还没找到合适的文件。我有什么想法吗?

4 个答案:

答案 0 :(得分:1)

以下对我有用: export MAVEN_OPTS =“ - Xdebug -Xrunjdwp:transport = dt_socket,server = y,suspend = y,address = 8787 -Xnoagent -Djava.compiler = NONE”

然后开始我的mvn测试: mvn install

(maven现在挂起等待调试器连接)

然后在远程调试会话中启动Eclipse,指向本地主机,端口8787(如上所述),并设置适当的断点。

答案 1 :(得分:0)

不使用maven开始测试更容易,而是使用JUnit在IDE中开始测试吗?那你可以直接使用调试器吗?我通常这样做,CI服务器使用maven来执行JBehave,但在IDE中,我更喜欢更直接的执行方式。

答案 2 :(得分:0)

这对我有用:

  1. 在Eclipse中运行 - &gt; 调试配置......
  2. 选择 Maven Build ,然后点击新建按钮
  3. 设定目标(在我的情况下为clean very)和可能的参数
  4. 点击调试按钮

答案 3 :(得分:-1)

mvn -e -o -Dmaven.surefire.debug =“ - Xdebug -Xrunjdwp:transport = dt_socket,server = y,suspend = y,address = 8787 -Xnoagent -Djava.compiler = NONE”integration-test

这条线对我来说非常合适。在eclipse中设置你的Jbehave项目 使用调试端口(8787)并在mvn等待连接到eclipse项目时快速连接到调试器。