2017-10-30 14 views
1

단위 테스트를 실행할 때 패키지의 모든 테스트를 건너 뛰고 싶지만 다른 패키지의 테스트가 제대로 작동하는지 확인해야합니다. com.felix.a, com.felix.bcom.felix.c, 내가 에서 테스트 클래스를 원하지 않는 COM : 한마디로Maven의 경우 패키지의 모든 테스트를 건너 뛸 수있는 방법이 있습니까?

, 거기에 이제 세 가지 패키지가 있습니다 .felix.c을 실행하십시오.

maven-surefire- 플러그인을 통해 패키지를 필터링하려고 시도했지만 적용되지 않았습니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.20.1</version> 
    <configuration> 
     <excludes> 
      <exclude>${basedir}/src/test/java/com/felix/c/*</exclude> 
     </excludes> 
    </configuration> 
</plugin> 

감사!

+0

? 왜 그들을 실행하지? – khmarbaise

+0

예를 들어, 특정 프로파일이 활성화 된 경우에만이를 실행하려고 할 수 있습니다. – gjoranv

+0

코드를 gerrit로 푸시하면 gerrit가 단위 테스트를 트리거하지만 시간 낭비이기 때문에이 패키지에서 단위 테스트를 실행하고 싶지 않습니다.하지만 누군가에 의해 실행됩니다. 그렇지 않으면 나중에. – Felix

답변

0

제외 기호에서 ${basedir}/src/test/java/을 제거하면 플러그인에서 이미 암시 한대로 작동합니다. documentation에서, 그것은 (틀림없이)보다 읽기의 완전한 패키지 이름을 사용할 수도 있습니다

<configuration> 
    <excludes> 
     <exclude>com.felix.c.*</exclude> 
    </excludes> 
</configuration> 
당신이 패키지에 단위 테스트를 생략하고 싶은 이유
+0

답변 해 주셔서 감사합니다. 하지만 혼란 스럽습니다. 사실, 단위 테스트를 필터링하고 싶습니다. com.felix.test.example.DemoTestCase.java'와'com.felix.test.testcases.BaseFunctionTest.java'입니다. 그것은'com.felix.test. **. * Test *'를 사용할 때 작동 할 수 있으며'com.felix.test. *'를 사용할 때 작동하지 않습니다. "*"를 사용하여 디렉토리를 나타낼 수 없습니까? 그것은 합리적이지 않습니다. – Felix

+0

'*'는 경로를 구성하는'/'를 제외한 모든 문자와 일치하는 것으로 보입니다. 하위 디렉토리를 포함하려면'**'를 사용해야합니다. 두 개의 특정 테스트 만 제외 시키려면'**/example/DemoTestCase.java' 및 **/testcases/BaseFunctionTest.java'를 사용하는 것이 더 안전하고 편리 할 것입니다. – gjoranv

+0

'com.felix.test. ** '는 완벽하게 해결할 수 있습니다. 당신과 공유하십시오! – Felix