[java] maven으로 단일 테스트 방법 실행

다음을 사용하여 특정 클래스에서 모든 테스트를 실행할 수 있다는 것을 알고 있습니다.

mvn test -Dtest=classname

그러나 개별 메서드를 실행하고 싶습니다 -Dtest = classname.methodname이 작동하지 않는 것 같습니다.



답변

Maven에서 단일 테스트 방법을 실행하려면 다음과 같이 명령을 제공해야합니다.

mvn test -Dtest=TestCircle#xyz test

여기서 TestCircle테스트 클래스 이름 xyz은 테스트 방법입니다.

와일드 카드 문자도 작동합니다. 메소드 명과 클래스 명 모두.

다중 모듈 프로젝트에서 테스트하는 경우 테스트가 포함 된 모듈을 지정하십시오 -pl <module-name>.

통합 테스트의 경우 다음 it.test=...대신 옵션을 사용하십시오 test=....

mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test


답변

surefire 2.12에 문제가 있습니다. 이것은 maven-surefire-plugin을 2.12에서 2.11로 변경하면 발생합니다.

  1. mvn test -Dtest=DesignRulesTest

    결과 :
    [오류] 프로젝트 pmd에서 목표 org.apache.maven.plugins : maven-surefire-plugin : 2.12 : test (기본 테스트) 를 실행하지 못했습니다 : 테스트가 실행되지 않았습니다!

  2. mvn test -Dtest=DesignRulesTest

    결과 : [정보] — maven-surefire-plugin : 2.11 : test (기본 테스트) @ pmd — … 실행 중 net.sourceforge.pmd.lang.java.rule.design.DesignRulesTest 테스트 실행 : 5 , 실패 : 0, 오류 : 0, 건너 뛰기 : 4, 경과 시간 : 4.009 초


답변

TestNG로 수행하는 작업 (죄송합니다, JUnit은 이것을 지원하지 않습니다) 테스트 사례는 실행하려는 테스트에 그룹을 할당 할 수 있다는 것입니다

@Test(groups="broken")

그런 다음 ‘mvn -Dgroups = broken’을 실행하십시오.


답변

단일 테스트 클래스에서 메소드 세트 실행 버전 2.7.3에서는 단일 테스트 클래스에서 n 개의 테스트 만 실행할 수 있습니다.

참고 : junit 4.x 및 TestNG에서 지원됩니다.

다음 구문을 사용해야합니다

mvn -Dtest=TestCircle#mytest test

패턴도 사용할 수 있습니다

mvn -Dtest=TestCircle#test* test

surefire 2.12.1부터 여러 방법을 선택할 수 있습니다 (현재 JUnit4X, 패치는 환영합니다)

mvn -Dtest=TestCircle#testOne+testTwo test

단일 테스트에 대한링크를 확인하십시오


답변

다음 구문을 사용하여 특정 테스트 클래스 및 메소드를 실행할 수 있습니다.

  1. 전체 패키지 : mvn test -Dtest = “com.oracle.tests. **”

  2. 클래스의 모든 메소드 : mvn test -Dtest = CLASS_NAME1

  3. 단일 클래스의 단일 메소드 : mvn test -Dtest = CLASS_NAME1 # METHOD_NAME1

  4. 여러 클래스의 여러 메소드 : mvn test -Dtest = CLASS_NAME1 # METHOD_NAME1, CLASS_NAME2 # METHOD_NAME2


답변

이 명령은 작동합니다 !!
mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test“-DTest”는 대문자 CAS ‘T’로 시작합니다.


답변

테스트 tobrien 언급 매개 변수는 당신이 사용하는 방법을 지정할 수 있습니다 #을 메소드 이름 앞에합니다. 이것은 JUnit 및 TestNG에서 작동합니다. 나는 그것을 시도하지 않았습니다, 그냥 Surefire 플러그인 페이지 에서 읽으십시오 :

포함 / 제외 매개 변수를 대체하여 파일 이름으로 개별 테스트를 실행하려면이 매개 변수를 지정하십시오. 여기서 지정한 각 패턴은 ** / $ {test} .java와 같은 형식의 포함 패턴을 작성하는 데 사용되므로 “-Dtest = MyTest”를 입력하여 “foo / MyTest.java”라는 단일 테스트를 실행할 수 있습니다. 이 매개 변수는 include / excludes 매개 변수 및 TestNG suiteXmlFiles 매개 변수를 대체합니다. 2.7.3부터 #myMethod 또는 # my * ethod를 추가하여 테스트에서 제한된 수의 메소드를 실행할 수 있습니다. junit 4.x 및 testNg에 대해 Si 유형 “-Dtest = MyTest # myMethod”지원