3

我在调试 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

4 回答 4

2

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

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

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

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

于 2009-05-11T20:45:20.880 回答
0

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

于 2012-06-22T15:14:29.463 回答
0

这对我有用:

  1. 在 Eclipse运行->调试配置...
  2. 选择Maven Build并单击New按钮
  3. 设定目标(clean very在我的例子中)和可能的参数
  4. 点击调试按钮
于 2018-06-14T08:21:22.257 回答
-1

mvn -e -o -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787 -Xnoagent -Djava.compiler=NONE" 集成测试

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

于 2016-10-13T19:19:15.220 回答