Maven 테스트
9341 단어 maven
기본 적 인 상황 에서 플러그 인의 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>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.