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>