Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调试JBehave场景_Java_Debugging_Testing_Bdd - Fatal编程技术网

Java 调试JBehave场景

Java 调试JBehave场景,java,debugging,testing,bdd,Java,Debugging,Testing,Bdd,调试jbehave测试时遇到问题。我无法让maven启动jbehave测试并在断点处停止。我的pom中有这个: <pluginManagement> <plugins> <plugin> <groupId>org.jbehave</groupId> <artifactId>jbehave-maven-plugin</artifactId> <version>2.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>


我可以尝试使用,但我认为这可能需要完美的时间来实现自动化,所以这听起来像是一个次优的解决方案,我觉得JBehave Maven插件应该提供此功能。显然,我还没有找到合适的文件。你知道我该怎么做吗?

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

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

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


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

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

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

这对我来说很有效:

  • 在Eclipse中运行->调试配置…
  • 选择Maven Build并单击New按钮
  • 设置目标(
    clean very
    在我的例子中)和可能的参数
  • 点击调试按钮

  • 如果测试必须在不同于您理想的机器上运行,则不会。这与现有答案几乎完全相同。重复它所说的一切有什么意义呢?对我来说,Maven等待Eclipse按其应该的方式连接,然后Maven继续,但它并没有在断点处停止。
    $  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