调试 JBehave 场景

发布于 2024-07-16 20:50:46 字数 1821 浏览 4 评论 0 原文

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

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 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

荒岛晴空 2024-07-23 20:50:46

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

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

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

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

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.

口干舌燥 2024-07-23 20:50:46

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

Wouldn't it be easier not to start the tests with maven, but rather in the IDE with JUnit? Then you can use the debugger directly? I normally do it so, that the CI server uses maven to execute JBehave, but in the IDE, I prefer a more direct way of execution.

謸气贵蔟 2024-07-23 20:50:46

这对我有用:

  1. 在 Eclipse Run -> 中 调试配置...
  2. 选择Maven Build并单击新建按钮
  3. 设置目标(在我的例子中clean very)和可能的参数
  4. 点击调试按钮

This worked for me:

  1. In Eclipse Run -> Debug Configurations...
  2. Select Maven Build and click New button
  3. Set the goals (clean very in my case) and possible parameters
  4. Hit Debug button
左秋 2024-07-23 20:50:46

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

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

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

This line worked perfect for me. Setup your Jbehave project in eclipse
with the debug port (8787) and connect to the debugger quickly while mvn is waiting to connect to your eclipse project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文