2012-09-24 6 views
7

Junit 4.8.2 및 maven 3이 있습니다. 내 응용 프로그램의 일부 테스트가 실패 할 경우 빌드가 실패하고 그 중 일부가 실패하면 안됩니다 (다음 선택적 테스트가 실패했다고보고 함)JUnit 선택적/필수 테스트

junit으로 어떻게 할 수 있습니까? 그럴 수 없다면 testng 할 수 있습니까?

예. 두 가지 테스트 사례가 있습니다.

우선 중요하지 않으며 연결 시간 제한, 서비스 사용 불가 등으로 인해 실패 할 수 있습니다. 빌드가

뿐만 아니라 실패한다 - 그것이 실패한다면, 난 그냥 사용자가 그것에 대해 알려

두 번째는 정말 중요한 일입니다 콘솔에 작성하고이 실패하는 경우에, 전체 빌드를 실패하지 않으 나는 @ Ignore에 대해 알고있다 - 나는 어떤 테스트를 건너 뛰고 싶지 않기 때문에 내가 원하는 것을 아니다.

확실한 플러그인을 구성하는 방법을 알고 있다면 : com.me.Required - 카테고리가 실패한 경우와 카테고리 com.me.Optional - build가 실패하면 실패해야합니다.

+0

정확하게 귀하의 질문은 무엇입니까 발생합니다 실행 감안할 때? 실패 할 것인가 또는하지 않을 것인가? 어떻게 생겼지? 퐁은 어떻게 생겼지? – khmarbaise

+0

내 질문을 업데이트했습니다. 제발 봐주세요 –

답변

3

failsafe 플러그인을 사용하여 실패 할 수있는 테스트를 수행하고 testFailureIgnore 플래그를 true로 설정하는 것이 좋습니다.

use에 당신이 플러그인을 추가 할 수있는 안전 장치 플러그인은 기본적 당 Test 같은 이름 테스트를 실행

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>foo.bar</groupId> 
    <artifactId>test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>2.12.4</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <testFailureIgnore>true</testFailureIgnore> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

확실한 플러그인을 pom으로합니다. failsafe 플러그인은 기본값으로 IT과 같은 테스트를 실행합니다.

는 테스트

import static org.junit.Assert.*; 

import org.junit.Test; 

public class SurefireTest { 

    @Test 
    public void test() { 
     assertTrue(true); 
    } 

} 

import static org.junit.Assert.*; 

import org.junit.Test; 

public class FailsafeIT { 

    @Test 
    public void test() { 
     assertTrue(false); 
    } 

} 

mvn install 지금

[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building test 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
. 
. 
. 
------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running SurefireTest 
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec 

Results : 

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 
. 
. 
. 
------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running FailsafeIT 
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.072 sec <<< FA 
ILURE! 
... 
Results : 

Failed tests: test(FailsafeIT) 

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0 
. 
. 
. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.174s 
[INFO] Finished at: Sat Sep 29 08:19:38 CEST 2012 
[INFO] Final Memory: 9M/245M 
[INFO] ------------------------------------------------------------------------ 
+0

모든 테스트가 아닌 testFailureIgnore를 적용 할 수 있습니까?나는 그렇게 생각하지 않는다. –

+0

@Sergey Kravchenya 나는이 옵션을 사용할 수 없다고 생각한다. 그래서 surefire 플러그인으로 실패하지 말아야하는 테스트를 실행하고 failsafe 플러그인 (그리고 testFailureIgnore가'true'로 설정 됨)으로 실패 할 수있는 테스트를 실행하는 것이 좋습니다 – FrVaBe

+0

두 플러그인을 함께 사용할 수 있습니까? 그렇다면 답을 편집하여 받아들입니다 :) 감사합니다 –

1
    당신은 @Ignore을 사용할 수 있습니다
  1. , 당신은 특정 패키지에 테스트를 건너 뛸 수 있습니다 Is there a way to skip only a single test in maven?

  2. 를 참조 실패 Is there a way to tell surefire to skip tests in a certain package? 또는 http://maven.apache.org/plugins/maven-failsafe-plugin/examples/inclusion-exclusion.html 또는

  3. 사용할 수있는 월 그것은 4.8 카테고리의 JUnit 카테고리 http://maven.apache.org/plugins/maven-failsafe-plugin/examples/junit.html

  4. 당신은 skipITs

http://maven.apache.org/plugins/maven-failsafe-plugin/verify-mojo.html#skipITs을 사용할 수 있습니다 나는 JUnit을 4.8 카테고리 당신이 찾고있는 사실이라고 생각합니다.