문제

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에서는 보다 직접적인 실행 방법을 선호합니다.

이것은 나에게 효과적이었습니다.

  1. 이클립스에서 달리다 -> 디버그 구성...
  2. 선택하다 메이븐 빌드 그리고 클릭 새로운 단추
  3. 목표를 설정하세요(clean very 내 경우에는) 및 가능한 매개변수
  4. 때리다 디버그 단추

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 프로젝트에 연결하기를 기다리는 동안 디버거에 빠르게 연결하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top