题
我在调试 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中,我更喜欢执行的更直接的方式。
这对我有用:
- 在日食中 跑步 -> 调试配置...
- 选择 Maven 构建 然后单击 新的 按钮
- 设定目标(
clean very
就我而言)和可能的参数 - 打 调试 按钮
MVN -e -o -Dmaven.surefire.debug = “ - Xdebug的-Xrunjdwp:运输= dt_socket,服务器= Y,暂停= Y,地址= 8787 -Xnoagent -Djava.compiler = NONE” 集成测试
本线为我工作完美。在Eclipse设置你的Jbehave项目 与调试端口(8787),并连接到调试器快速而MVN正在等待连接到Eclipse项目。
不隶属于 StackOverflow