maven surefire 플러그 인 소개
1. surefire plugin 의 역할
surefire 플러그 인 은 maven 에서 수명 주 기 를 구축 하 는 test phase 에서 응용 유닛 테스트 를 수행 합 니 다.그것 은 두 가지 다른 형식 을 만들어 낼 것 이다.
의 테스트 결과 보고서:
1). 일반 텍스트
2). xml 파일 형식의
기본적으로 이 파일 들 은 프로젝트 의 ${basedir} / target / surefire - reports 에 생 성 됩 니 다. 디 렉 터 리 아래 (basedir 는 pom 파일 이 있 는 디 렉 터 리 를 말 합 니 다).
모든 testng, Junit, pojo 가 쓴 유닛 테스트 를 실행 할 수 있 습 니 다.
2. 어떻게 사용 하나 요?
이 플러그 인 을 사용 하 는 것 은 매우 간단 합 니 다. mvn surefire: test 또는 mvn test 를 사용 하면 프로젝트 의 유닛 테스트 를 실행 할 수 있 습 니 다.
3. 설정 방법
1. 설정 에 의존:
1). TestNG 를 사용한다 면 이 설정 에 따라:
pom 파일 에 testng 의존 도 를 도입 합 니 다:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.12.1</version>
<scope>test</scope>
</dependency>
(<= 5.11), :
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.8</version>
<scope>test</scope>
<classifier>jdk15</classifier>
</dependency>
classifier , maven
<artifactId>-<version>-<classifier>.<packaging>。( jar , sources javadoc, <artifactId>-<version>-<classifier>-<type>.<packaging>, <type> sources javadoc)。 ,testng maven :
testng-5.8-jdk15.jar
classifier jdk 。
2). Junit, :
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
2.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.10</version> <configuration> <parallel>methods</parallel> <threadCount>10</threadCount> </configuration> </plugin>
, , 。 mvn test mvn surefire:test, (src/test/java) , *Test.java, 。
, , jmockit, , , , ? 。
3.
。
parent pom.xml :
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <testNGArtifactName>com.alibaba.external:test.testng</testNGArtifactName> <argLine>-javaagent:"${settings.localRepository}/com/alibaba/external/test.jmockit/0.999.10/test.jmockit-0.999.10.jar"</argLine> <useSystemClassLoader>true</useSystemClassLoader> <testFailureIgnore>true</testFailureIgnore> <parallel>false</parallel> <forkMode>once</forkMode> <suiteXmlFiles> <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin>
( )
, configuration 。 :
testNGArtifactName testng jar artifactId
argLine jvm , jvm
useSystemClassLoader ,
testFailureIgnore
forkMode :
Maven , maven surefire fork 。forkmode , 。
forkMode “never”, “once”, “always” “pertest”。
pretest: , JVM , , hudson
once: 한 프로 세 스에 서 모든 테스트 를 진행 합 니 다.once 는 기본 설정 이 며, Hudson 에서 계속 돌아 올 때 기본 설정 을 사용 하 는 것 을 권장 합 니 다.
always: ,Junit4.7 ,surefire 2.6 , threadCount: , 。 parallel 。 :5。
<forkMode>always</forkMode>
<parallel>methods</parallel>
suiteXmlFiles , 。
src/test/resources/testng.xml, , , permission testng.xml, 。
testng.xml :
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="plan-project-test">
<test name="plan-project-test">
<packages>
<package name="com.alibaba.lp.permission.dal.cache.test" />
<package name="com.alibaba.lp.permission.dal.impl.test" />
</packages>
</test>
</suite>
package , , 。
class:
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="My test suite">
<test name="testing">
<classes>
<class name="TestNGTest1" />
<class name="TestNGTest2" />
</classes>
</test>
</suite>
group:
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
<suite name="My test suite">
<test name="testing">
<groups>
<run>
<include name="method1"/>
</run>
</groups>
<classes>
<class name="TestNGTest5_2_0" />
</classes>
</test>
</suite>
suite , google suite 。
?
, , parent pom.xml , , testng.xml 。 , ?
1, configuration :
<configuration> <skipTests>true</skipTests> </configuration>
, parent pom.xml , 。
mvn install -DskipTests mvn install -Dmaven.test.skip=true 。
2, pom.xml property, permission web pom:
<parent> <groupId>com.alibaba.lp.app</groupId> <artifactId>permission.parent</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>permission.web.perm</artifactId> <name>permission web perm project</name> <properties> <maven.test.skip>true</maven.test.skip> </properties>
:
<properties> <skipTests>true</skipTests> </properties>
, maven.test.skip skipTests
maven. test. skip 은 많은 플러그 인, 예 를 들 어 Surefire, Failsafe 와 Compiler Plugin 에서 지원 되 고 skipTests 역할 은 같 지만 적용 범위 가 좀 작 을 수 있 습 니 다. (저 는 skipTests 를 사용 하 는 것 에 익숙 합 니 다. 짧 기 때 문 입 니 다)
使用文件指定include和exclude的方式我比较支持,但是如果你不喜欢这种方式那么可以去掉suiteXmlFiles这段配置改用以下配置来管理:<configuration> <includes> <include>**/Test.java</include> </includes><excludes><exclude>**/TestCase.java</exclude></excludes> </configuration>surefire , ,
http://maven.apache.org/plugins/maven-surefire-plugin/examples/inclusion-exclusion.html 。
4. :
surefire , mvn test, eclipse testNG 。 。 mvn test >result.txt, result.txt 。testNG , 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.