我在调试 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 插件应该提供此功能。显然我还没有找到合适的文档。我有什么想法吗?

有帮助吗?

解决方案

以下为我工作: 出口MAVEN_OPTS = “ - Xdebug的-Xrunjdwp:运输= dt_socket,服务器= Y,暂停= Y,地址= 8787 -Xnoagent -Djava.compiler = NONE”

然后开始我的MVN测试: MVN安装

(行家现在挂等待调试器连接)

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

其他提示

那岂不是更容易不启动与Maven的测试,而是用JUnit的IDE?然后你就可以直接使用调试器?我通常愿意这样做,使CI服务器使用Maven来执行JBehave,但在IDE中,我更喜欢执行的更直接的方式。

这对我有用:

  1. 在日食中 跑步 -> 调试配置...
  2. 选择 Maven 构建 然后单击 新的 按钮
  3. 设定目标(clean very 就我而言)和可能的参数
  4. 调试 按钮

MVN -e -o -Dmaven.surefire.debug = “ - Xdebug的-Xrunjdwp:运输= dt_socket,服务器= Y,暂停= Y,地址= 8787 -Xnoagent -Djava.compiler = NONE” 集成测试

本线为我工作完美。在Eclipse设置你的Jbehave项目 与调试端口(8787),并连接到调试器快速而MVN正在等待连接到Eclipse项目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top