Maven 테스트

9341 단어 maven
1.maven-surefire-plugin 플러그 인
    기본 적 인 상황 에서 플러그 인의 test 목 표 는 테스트 소스 경로(기본 값 은 src/test/java/)에서 이름 모드 에 맞 는 모든 테스트 클래스 를 자동 으로 실행 합 니 다.이 그룹 모드 는:
    **/Test*.java
    **/*Test.java
    **/*TestCase.java
  테스트 클래스 의 모드 를 사용자 정의 할 수 있 고 더 높 은 TestNG 테스트 집합 xml 파일 도 지원 합 니 다.
  테스트 를 실행 하려 면 POM 파일 에 JUNIT 의존 도 를 도입 해 야 합 니 다.
 
2.테스트 건 너 뛰 기
화면 음악 clean install-DskipTests 와 같은 skipTests 를 실행 할 때 추가 합 니 다.
다음 명령 은 테스트 코드 의 컴 파일 mvn clean install-DMaven.test.skip=true 를 건 너 뛸 수 있 습 니 다.
POM 에서 테스트 코드 의 실행 과 컴 파일 을 건 너 뛰 는 플러그 인 을 설정 할 수 있 습 니 다.
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>

 
    위 코드 가 추 가 된 후 Maven 컴 파일 은 자바 컴 파일 버 전이 1.4 인 경우 가 발생 했 고,account 의 POM 파일 에 컴 파일 버 전 을 1.5 로 추가 하면 정상적으로 실행 되 며,1.6 으로 추가 하면'GBK 인 코딩 의 매 핑 하지 않 는 문자'오류 가 발생 하고 UTF-8 인 코딩 도 추가 해 야 합 니 다.account 에서 POM 파일 을 수정 한 내용 은 다음 과 같 습 니 다.
<?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>

	<groupId>com.iteye.xujava</groupId>
	<artifactId>account</artifactId>
	<version>1.0.0</version>
	<packaging>pom</packaging>
	<name>Account</name>

	<modules>
		<module>account-email</module>
		<module>account-persist</module>
		<module>account-captcha</module>
	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<springframework.version>2.5.6</springframework.version>
		<junit.version>4.9</junit.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-core</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context-support</artifactId>
				<version>${springframework.version}</version>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<configuration>
						<source>1.6</source>
						<target>1.6</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<configuration>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>

 
3.실행 할 테스트 용례 를 동적 으로 지정 합 니 다.
 
 mvn test -Dtest=RandomGeneratorTest
 mvn test -Dtest=Random*Test
 mvn test -Dtest=RandomGeneratorTest,AccountCaptchaServiceTest
 mvn test -Dtest=Random*Test,AccountCaptchaServiceTest
 test 매개 변수 가 하나 이상 의 테스트 클래스 와 일치 하지 않 을 때 오류 가 발생 하고 구축 에 실패 할 수 있 습 니 다.예 를 들 어 mvn test-dtest
 mvn test-Test-DfailIfNoTests=false 를 실행 할 수 있 습 니 다.테스트 클래스 가 없어 도 오류 가 발생 하지 않 습 니 다.
 
4.테스트 용례 포함 및 제거
 
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugiin</artifactId>
				<version>2.5</version>
				<configuration>
					<includes>
						<include>**/*Tests.java</include>
					</includes>
					<excludes>
						<exclude>**/*ServiceTest.java</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

  
5.테스트 보고서
 
    기본 적 인 상황 에서 maven-surefire-plugin 은 프로젝트 target/surefire-reports 디 렉 터 리 에서 txt 와 xml 두 가지 형식의 오류 보고 서 를 생 성 합 니 다.
    테스트 보급률 은 프로젝트 코드 의 품질 을 평가 하 는 중요 한 참고 기준 이다.Maven 은 cobertura-maven-plugin 을 통 해 Cobertura 를 통합 했다.mvn cobertura:cobertura 를 실행 하면 프로젝트 target/site/cobertura 에서 보고 서 를 생 성하 고 index.html 를 열 어 봅 니 다.
 
6.TestNG 로 테스트(미 테스트)
Junit 의존 삭제,TestNG 의존 추가
<dependencies>
		<dependency>
			<groupId>org.testng</groupId>
			<artifactId>testng</artifactId>
			<version>5.9</version>
			<scope>test</scope>
			<classifier>jdk15</classifier>
		</dependency>
	</dependencies>

 
테스트 클래스 의 Junit 라 이브 러 리 의존 이 TestNG 라 이브 러 리 의존 으로 바 뀌 었 습 니 다.
 
mvn test 를 실행 하면 테스트 할 수 있 습 니 다.
TestNG 는 사용자 가 실행 할 테스트 집합 을 testng.xml 파일 그림 설정 할 수 있 도록 합 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<!--      RandomGeneratorTest -->
<suite name="Suite1" version="1">
	<test name="Regression1">
		<classes>
			<class name="com.iteye.xujava.account.captcha.RandomGeneratorTest"/>
		</classes>
	</test>
</suite>

동시에 POM 파일 에 maven-surefire-plugin 을 설정 하여 이 testng.xml 를 사용 합 니 다.
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<suiteXmlFiles>
						<suiteXmlFile>testng.xml</suiteXmlFile>
					</suiteXmlFiles>
				</configuration>
			</plugin>
		</plugins>
	</build>

  TestNG 가 Junit 보다 큰 장점 은 테스트 팀 의 개념 을 지원 하 는 데 있다.
@Test{groups={"util","medium"}}
다음 과 같이 실행 테스트 그룹 을 설정 할 수 있 습 니 다.
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.5</version>
				<configuration>
					<groups>util,medium</groups>
				</configuration>
			</plugin>
		</plugins>
	</build>
 
7.테스트 코드 재 활용(테스트 되 지 않 음)
다음 코드 를 설정 하면 테스트 코드 를 함께 포장 합 니 다.
<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.2</version>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기