2010-05-18 6 views
4

우리는 JUnit 테스트에서 필터링 된 testResources를 사용하는데, 이는 보통 maven surefire 플러그인에 의해 실행됩니다. 즉, pom에 섹션이 포함되어 있습니다.필터링 된 리소스가있는 maven junit 테스트를 디버깅 하시겠습니까?

<build> 
    <testResources> 
     <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
     </testResource> 
    </testResources> 
    ... 

디버거에서 어떻게 이러한 JUnit 테스트를 실행할 수 있습니까? Eclipse에서 테스트를 실행하면 테스트 리소스가 필터링되지 않기 때문에 테스트가 실패합니다. 필터링 된 테스트 리소스가 대상 디렉토리의 어딘가에 쓰여지는 경우 추가 소스 경로로 사용할 수 있습니다.하지만 그렇지 않습니다. Debug As/Maven 테스트를 사용하여 Eclipse에서 maven 빌드를 실행하려고하면 빌드가 중단 점에서 중지되지 않습니다. 다른 아이디어?

답변

4

몇 가지 옵션이 있습니다. 먼저 maven.surefire.debug을 지정하여 명령 줄에서 테스트를 실행할 수 있습니다. 기본적으로 확실한 테스트는 분기 된 JVM에서 실행되므로 maven 프로세스를 디버깅하는 경우 테스트 중단 점에서 멈추지 않습니다. 아마 당신이 지금보고있는 것입니다. 참고 : http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

기타 이런 식으로 프로젝트를 IDE 내에서 maven 프로젝트로 구성하는 것이 좋습니다. 프로젝트가 maven 프로젝트로 구성되면 테스트를 실행하기 전에 자원 필터링이 자동으로 수행됩니다. 최소한 Idea 내에서 작동하는 방법은 같지만 Eclipse가 올바른 Maven 플러그인과 동일한 기능을 수행한다고 생각합니다.

명령 줄에서 maven 빌드를 한 번 실행 한 다음 디렉토리를 수동으로 IDE 구성에 대상/테스트 클래스로 추가 할 수도 있습니다. 작동하지만 조금 사납다.

1

테스트를 실행하면 테스트 리소스가 필터링되지 않으므로 테스트가 실패합니다.

m2eclipse을 사용하면 자원이 Eclipse에서 필터링됩니다.

관련 문제