메이븐을 사용하여 단일 테스트 방법 실행
다음 명령을 사용하여 특정 클래스의 모든 테스트를 실행할 수 있습니다.
mvn test -Dtest=classname
그러나 개별 메서드와 -Dtest=classname을 실행하고 싶습니다.methodname이 작동하지 않는 것 같습니다.
Maven에서 단일 테스트 방법을 실행하려면 다음과 같은 명령을 제공해야 합니다.
mvn test -Dtest=TestCircle#xyz test
서 ''는TestCircle
과 "" 입니다.xyz
테스트 방법입니다.
와일드카드 문자는 메서드명과 클래스명 모두 기능합니다.
테스트하는 경우 합니다.-pl <module-name>
.
의 경우는, 「」를 사용합니다.it.test=...
option 。test=...
:
mvn -pl <module-name> -Dit.test=TestCircle#xyz integration-test
Surefire 2.12에 문제가 있습니다.maven-sure-fire-plugin을 2.12에서 2.11로 변경하면 다음과 같이 됩니다.
mvn test -Dtest=DesignRulesTest
★★★★★★★★★★★★★★★
[오류] 목표 org.apache.maven을 실행하지 못했습니다.플러그인:maven-surefire-plugin:2.12:프로젝트 pmd의 테스트(기본 테스트): 테스트가 실행되지 않았습니다!mvn test -Dtest=DesignRulesTest
결과: [INFO] --- maven-surefire-plugin: 2.11: test (기본 테스트)@ pmd ---...인터넷 실행 중.sourceforge.pmd.syslog.rule.design을 지정합니다.Design Rules Test 테스트 실행: 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
다음 구문을 사용하여 특정 테스트클래스 및 메서드를 실행할 수 있습니다.
전체 패키지 : mvn test -Dtest="com.oracle.tests"입니다.**"
클래스의 모든 메서드: mvn test -Dtest=CLASS_NAME1
단일 클래스의 단일 메서드:mvn test -Dtest=CLASS_NAME1#METOD_NAME1
다중 클래스의 다중 메서드: mvn test -Dtest=CLASS_NAME1#METOD_NAME1, CLASS_NAME2#METOD_NAME2
★★★★★★★★★★★★★★★★★★★★★★★!! mvn "-DTest=JoinTeamTestCases#validateJoinTeam" test
"-로 합니다. "-DTest"는 "T"로 시작합니다.
테스트 클래스에서 단일 테스트 방법을 실행합니다.
mvn test -Dtest=Test1#methodname
기타 관련 사용 사례
mvn test // Run all the unit test classes
mvn test -Dtest=Test1 // Run a single test class
mvn test -Dtest=Test1,Test2 // Run multiple test classes
mvn test -Dtest=Test1#testFoo* // Run all test methods that match pattern 'testFoo*' from a test class.
mvn test -Dtest=Test1#testFoo*+testBar* // Run all test methods match pattern 'testFoo*' and 'testBar*' from a test class.
이 스레드에 있는 몇 가지 솔루션을 시도했지만 다른 모듈에 의존하는 모듈에서는 작동하지 않았습니다.그 경우 나는 도망쳐야 했다.mvn
root-module에서 추가 파라미터를 지정합니다.-am
(--also-make
)는 테스트모듈이 의존하고 있는 모듈 및-DfailIfNoTests=false
그렇지 않으면 "No tests were executed!" 오류가 나타납니다.
mvn test -pl B -Dtest=MyTestClass#myTest -am -DfailIfNoTests=false
pom.xml 섹션은 다음과 같습니다.
<modules>
<module>A</module>
<module>B</module>
<modules>
B는 A에 의존합니다.
tobrien에서 언급된 테스트 파라미터를 사용하면 메서드 이름 앞에 #를 사용하여 메서드를 지정할 수 있습니다.이것은 JUnit 및 TestNG로 동작합니다.한 번도 써본 적이 없으니 Surefire 플러그인 페이지에서 읽어보세요.
포함/제외 매개 변수를 재정의하여 파일 이름으로 개별 테스트를 실행하려면 이 매개 변수를 지정합니다.여기서 지정한 각 패턴은 **/${test}와 같은 형식의 포함 패턴을 생성하는 데 사용되므로 "-Dtest=MyTest"를 입력하여 "foo/MyTest.java"라는 단일 테스트를 실행할 수 있습니다.이 파라미터는 includes/excludes 파라미터 및 TestNG suiteXmlFiles 파라미터를 덮어씁니다.2.7.3 시험에서는 #myMethod 또는 #my*ethod를 추가하여 제한된 수의 방법을 실행할 수 있습니다.si 타입 "-Dtest=MyTest#myMethod"는 junit 4.x 및 testNg에서 지원됩니다.
JUnit의 새로운 버전에는 카테고리 러너가 포함되어 있습니다.http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html
그러나 JUnit의 릴리스 프로시저는 maven 베이스가 아니기 때문에 maven 사용자는 수동으로 저장소에 저장해야 합니다.
surefire 플러그인 버전 2.22.1(아마도 이전 버전)에서는 testng.xml을 사용할 때 testnames 속성을 사용하여 단일 테스트를 실행할 수 있습니다.
다음 testng.xml 지정
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<test name="all-tests">
<classes>
<class name="server.Atest"/>
<class name="server.Btest"/>
<class name="server.Ctest"/>
</classes>
</test>
<test name="run-A-test">
<classes>
<class name="server.Atest"/>
</classes>
</test>
<test name="run-B-test">
<classes>
<class name="server.Btest"/>
</classes>
</test>
<test name="run-C-test">
<classes>
<class name="server.Ctest"/>
</classes>
</test>
</suite>
pom.xml을 사용하여
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
[...]
<properties>
<selectedTests>all-tests</selectedTests>
</properties>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<suiteXmlFiles>
<file>src/test/resources/testng.xml</file>
</suiteXmlFiles>
<properties>
<property>
<name>testnames</name>
<value>${selectedTests}</value>
</property>
</properties>
</configuration>
</plugin>
</plugins>
[...]
</project>
명령줄에서
mvn clean test -DselectedTests=run-B-test
자세한 내용 - 테스트를 사용한 Maven surefire 플러그인
먼저 메이븐 프로젝트를 청소해야 합니다.
mvn clean
특정 파일 및 기능을 실행할 수 있습니다.
mvn test -Dtest=testClassName#testCaseName
실행할 JUnit 테스트 클래스와 메서드를 지정해야 합니다.
mvn test -Dtest=com.mycompany.AppTest#testMethod
https://metamug.com/article/java/build-run-java-maven-project-command-line.html#running-unit-tests
단일 테스트 클래스를 실행할 수 있지만 테스트 클래스 내에서 단일 메서드는 실행할 수 없습니다.클래스의 완전 수식 이름이 아닌 단순 이름을 사용합니다.따라서 "org.sonatype.test"에서 테스트가 있는 경우.MyTest"에서 실행하는 유일한 테스트입니다.커맨드 라인은 다음과 같습니다.
mvn test -Dtest=MyTest
언급URL : https://stackoverflow.com/questions/1873995/run-a-single-test-method-with-maven
'programing' 카테고리의 다른 글
vue에서 항목을 클릭하는 방법 (0) | 2022.08.10 |
---|---|
정규식을 사용하지 않고 자바에서 문자가 문자인지 숫자인지 확인하는 가장 좋은 방법은 무엇입니까? (0) | 2022.08.10 |
커스텀 CPU용 C 컴파일러를 작성하는 방법 (0) | 2022.08.10 |
정의되지 않은 속성 'ref'를 읽을 수 없습니다. (0) | 2022.08.10 |
계산된 Ajax가 있는 Vuex 작업이 업데이트되지 않음 (0) | 2022.08.10 |