【问题标题】:Debugging JBehave scenarios调试 JBehave 场景
【发布时间】:2009-04-08 17:36:02
【问题描述】:

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

【问题讨论】:

    标签: java debugging testing bdd


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 对我来说,Maven 等待 Eclipse 正常连接,然后 Maven 继续,但它不会在断点处停止。
    【解决方案2】:

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

    【讨论】:

    • 如果测试必须在与您的 IDE 不同的机器上运行,则不需要
    【解决方案3】:

    这对我有用:

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

    【讨论】:

      【解决方案4】:

      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 项目时快速连接到调试器。

      【讨论】:

      • 这与现有答案之一几乎完全相同。重复它所说的一切有什么意义?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多