문제
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:transport=dt_socket,서버=y,일시중단=y,주소=8787 -Xnoagent -Djava.compiler=NONE"
그런 다음 mvn 테스트를 시작하십시오.mvn 설치
(이제 Maven은 디버거가 연결될 때까지 기다리며 중단됩니다)
그런 다음 적절한 중단점이 설정된 로컬 호스트, 포트 8787(위와 같이)을 가리키는 원격 디버그 세션에서 Eclipse를 시작합니다.
다른 팁
Maven을 사용하여 테스트를 시작하는 것이 아니라 JUnit을 사용하여 IDE에서 테스트를 시작하는 것이 더 쉽지 않을까요?그러면 디버거를 직접 사용할 수 있나요?나는 일반적으로 CI 서버가 Maven을 사용하여 JBehave를 실행하도록 하지만 IDE에서는 보다 직접적인 실행 방법을 선호합니다.
이것은 나에게 효과적이었습니다.
- 이클립스에서 달리다 -> 디버그 구성...
- 선택하다 메이븐 빌드 그리고 클릭 새로운 단추
- 목표를 설정하세요(
clean very
내 경우에는) 및 가능한 매개변수 - 때리다 디버그 단추
mvn -e -o -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspens=y,address=8787 -Xnoagent -Djava.compiler=NONE" 통합 테스트
이 라인은 나에게 완벽하게 작동했습니다.디버그 포트 (8787)와 함께 일식으로 JBehave 프로젝트를 설정하고 MVN이 Eclipse 프로젝트에 연결하기를 기다리는 동안 디버거에 빠르게 연결하십시오.