maven surefire plugin - test 단계를 위한 플러그인

Intro

The Surefire Plugin is used during the test phase of the build lifecycle to execute the unit tests of an application. It generates reports in 2 different file formats:


Goal



Using JUnit

Configuring JUnit

To get started with JUnit, you need to add the required version of JUnit to your project:
 
<dependencies>
  [...]
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
  [...]
</dependencies>


테스트 건너뛰기(Skipping Test)

skipTests 프로퍼티를 설정하면 테스트를 건너뛸수 있다.

 

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.12.1</version>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

 

커맨드라인에서 skip test 를 적용하려면 다음 property 를 설정해서 maven 을 실행한다.

 

mvn install -DskipTests

maven.test.skip property 를 사용하면 test source 를 컴파일등도 건너뛸 수 있다.

mvn install -Dmaven.test.skip=true


Running a Single Test

Running Single Test 기능은 surefire 2.12.1 부터 가능하다. (2.12 는 버그로 인해 미작동)

 

특정 test case 만 지정해서 실행이 가능하다.

mvn -Dtest=TestCircle test

*로 test case 의 패턴을 지정할 수 있다.

mvn -Dtest=TestCi*le test

특정 test case 의 특정 method 만 실행하려면 # 으로 메소드명을 지정한다.

mvn -Dtest=TestCircle#mytest test

아래처럼 메소드명도 wildcard 로 지정이 가능하다.

TestCircle 의 test* 로 시작되는 모든 메소드 실행
mvn -Dtest=TestCircle#test* test

 

java vm 에 java.library.path  property 전달하가

surefire plugin의 configuration 내 argLine 에 전달 가능. systemPropertyVariables 설정에는 java.library.path 를 전달할 수 없음

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <forkMode>once</forkMode>
        <workingDirectory>target</workingDirectory>
		<argLine>-Djava.library.path=/usr/lunasa/jsp/lib/</argLine>        
    </configuration>
</plugin>

 

See Also