Maven에서 테스트

Maven 작업의 또 다른 중요한 점은 테스트 단계입니다. test , package , verify 또는 그 뒤에 오는 다른 단계를 실행하면 실행됩니다 .

기본적으로 Maven은 src/test/java/ 폴더 에 있는 모든 테스트를 실행합니다 . 실행할 테스트를 다른 Java 파일과 구별하기 위해 이름 지정 규칙이 채택되었습니다. 테스트는 이름이 "Test"로 시작하고 "Test" 또는 "TestCase" 로 끝나는 Java 클래스입니다 .

테스트 이름의 일반적인 패턴:

  • **/테스트*.java
  • **/*테스트.자바
  • **/*TestCase.java

이러한 테스트는 Junit 또는 TestNG 테스트 프레임워크를 기반으로 작성해야 합니다 . 이것들은 매우 멋진 프레임워크이며, 나중에 확실히 이야기할 것입니다.

.txt 및 .xml 형식의 보고서 형식으로 된 테스트 결과는 ${basedir}/target/surefire-reports 디렉토리에 저장됩니다.

테스트 설정

일반적으로 테스트 실행을 위한 많은 옵션이 있으므로 Maven 개발자는 테스트에 대한 모든 세부 정보를 설정할 수 있는 매개 변수에 특수 플러그인을 만들었습니다. 이 플러그인은 Maven Surefire Plugin 이라고 하며 에서 사용할 수 있습니다 .

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<includes>
                <include>Sample.java</include>
        	</includes>
    	</configuration>
	</plugin>
</plugins>

예제에서는 플러그인에 단일 테스트 클래스인 Sample.java를 실행해야 한다고 알렸습니다.

깨진 테스트를 빠르게 제거하는 방법

테스트를 위해 프로젝트를 실행하려면 mvn test 명령을 실행해야 합니다. 그러나 더 자주 테스트에서 일부 테스트를 제외해야 할 필요가 있습니다. 예를 들어, 고장났거나 실행하는 데 너무 오래 걸리거나 다른 이유로 인해 발생할 수 있습니다.

첫째, 빌드 단계를 수행할 때 테스트를 건너뛰도록 Maven에 간단히 지시할 수 있습니다. 예:

mvn clean package -Dmaven.test.skip=true

둘째, 플러그인 구성에서 테스트 실행을 비활성화할 수 있습니다.


<configuration>
    <skipTests>true</skipTests>
</configuration>

셋째, <exclude> 태그를 사용하여 테스트를 제외할 수 있습니다 . 예:


<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
    	<version>2.12.4</version>
    	<configuration>
        	<excludes>
           	<exclude>**/TestFirst.java</exclude>
	           <exclude>**/TestSecond.java</exclude>
    	</excludes>
    	</configuration>
    </plugin>
</plugins>