programing

maven :: 다중 모듈 프로젝트에서 단일 테스트 만 실행

goodcopy 2021. 1. 18. 22:05
반응형

maven :: 다중 모듈 프로젝트에서 단일 테스트 만 실행


모든 테스트를 건너 뛰고 일부 모듈에서 하나씩 건너 뛰기 위해 명령 줄 인수를 제공하는 방법이 있습니까? 따라서 다른 테스트를 실행할 때마다 pom.xml을 변경할 필요가 없습니까?

예를 들어 TeamCity에서 빌드 구성을 만들고 일부 모듈에서 단일 테스트 만 실행하는 명령 줄 인수를 제공하려고합니다. 다음에 변경하고 다른 테스트를 실행해야합니다.

아마도 그것은 CI가 의도 된 방식이 아니라 여전히 사용될 수 있습니다.


확실하게 단일 테스트를 실행하는 방법 에 대한 문서를 읽었다 고 가정합니다 . 그들이 당신에게 말하지 않는 것은 서브 모듈에서 그것을 수행하는 방법입니다.

mvn test -Dtest=testname -pl subproject

subproject해당 테스트가 포함 된 프로젝트는 어디에 있습니까 ? mvn man 페이지에서 :

-pl,-projects arg 모든 프로젝트 대신 빌드 할 지정된 리액터 프로젝트의 쉼표로 구분 된 목록입니다. 프로젝트는 [groupId] : artifactId 또는 상대 경로로 지정할 수 있습니다.


내가 보는 다른 답변은 다른 하위 모듈에 의존하는 프로젝트에 대해 완전하지 않습니다. 한 가지 옵션은 mvn install필수 jar를에 설치 하도록 실행 하는 ~/.m2/...것이지만 해당 옵션은 "깨끗한"것은 아닙니다.

다음 명령은 하위 모듈을 빌드하고 지정된 테스트 클래스 만 실행합니다. 이것은 부모 모듈 수준에서 실행됩니다. 또한 하위 모듈 이름을 지정할 필요가 없습니다.

mvn test -DfailIfNoTests=false -Dtest={test_class_name} -am

제쳐두고 이것은 mvn clean test -Dfa...... 나는 clean테스트를 실행할 항상 달리는 습관이 있습니다.

References ..
-am는 다른 모든 하위 모듈을 만듭니다.
-DfailIfNoTests=false다른 모듈에서 테스트를 실행할 계획이 아니기 때문에 전체 프로세스가 실패하지 않습니다. 이미 모든 것을 구축하고
-pl있으므로 옵션이 필요하지 않습니다.-am


테스트 할 모듈이 다른 프로젝트에 의존하는 경우 솔루션은 다음과 같이 명령을 변경하여 작동합니다.

mvn test -DfailIfNoTests=false -Dtest=testname -pl subproject

참조 : http://www.automatethebox.com/2015/12/some-helpful-commands-to-build-multi.html

참조 URL : https://stackoverflow.com/questions/11869762/maven-run-only-single-test-in-multi-module-project

반응형