본문 바로가기
Tools

[Maven] 메이븐으로 특정 테스트 클래스 혹은 테스트 메소드만 실행하는 방법

by A6K 2023. 3. 18.

메이븐에서 surefire 플러그인으로 빌드 중에 테스트를 실행하는 경우가 많다. surefire 플러그인은 test 라는 골만 지원하는데, 기본적으로 프로젝트에 있는 전체 테스트를 실행하게 된다.

문제는 일부 테스트가 실패했을 때, 문제를 수정하고 실패했던 테스트가 여전히 실패하고 있는지 간단하게 확인하고 싶은 경우다. 매번 전체 테스트 셋을 다 돌려보는 것은 매우 낭비이기 때문이다.

전체 테스트 수행

프로젝트의 전체 테스트를 수행하기 위해서는 test 골만 입력하면 된다.

$ mvn test

하나의 테스트 클래스 수행

전체 테스트 중 하나의 테스트 클래스에 포함되어 있는 테스트들만 수행하고 싶은 경우는 다음과 같이 실행한다.

$ mvn test -Dtest="TestName"

test 변수에 실행하고 싶은 테스트 클래스의 이름을 주면 된다. 

하나의 테스트 메소드 수행

테스트 클래스 중에 특정 테스트 메소드만 수행하고 싶은 경우 다음과 같이 실행하면 된다.

$ mvn test -Dtest="TestClass#testMethod"

# 문자를 기준으로 앞 쪽에 테스트 클래스 이름을 넣어주고, 뒤 쪽에 메소드 이름을 넣어주면 된다.

지정한 테스트 클래스 수행

실행할 테스트 클래스를 지정할 수도 있다.

$ mvn test -Dtest="TestClassName1, TestClassName2, TestClassName3"

콤마로 여러개의 테스트 클래스를 구분해서 넣어주면 지정한 테스트 클래스가 실행된다.

$ mvn test -Dtest="*RandomTest"

* 문자를 이용해서 실행할 테스트 클래스들의 패턴을 지정할 수도 있다.

$ mvn test -Dtest="MyTest#method1+method2"

+ 문자를 이용해서 특정 클래스에 있는 테스트 메소드들을 지정할 수도 있고

$ mvn test -Dtest="MyTest#testMethod_*"

패턴으로 지정할 수도 있다.

댓글