`

Maven 测试

 
阅读更多

1.maven-surefire-plugin插件

    默认情况下,插件的test目标会自动执行测试源码路径(默认为src/test/java/)下所有符合一组命名模式的测试类。这组模式为:

    **/Test*.java

    **/*Test.java

    **/*TestCase.java

  还可以自定义测试类的模式,还支持更高级的TestNG测试集合xml文件。

  执行测试,需要在POM文件中引入JUNIT依赖。

 

2.跳过测试

在运行时加入skipTests,如mvn clean install -DskipTests

下面命令还可以跳过测试代码的编译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编译出现了Java编译版本为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 -Dtest -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>
 
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    maven测试HelloWorld

    在本文中,我们将深入探讨如何使用Maven进行Java项目的构建和测试,以"HelloWorld"为例。Maven是一个强大的项目管理工具,它可以帮助开发者管理依赖、构建项目、执行测试,并生成文档,使得整个开发流程更加规范化和...

    maven常用命令以及以个测试项目

    ### Maven测试项目 在“test”这个文件中,通常包含的是Maven项目的测试部分,比如JUnit测试或者Mockito等测试框架的代码。这些测试文件位于`src/test/java`目录下,遵循Maven的标准目录结构。编写好测试后,可以...

    Elasticsearch+Maven 测试Demo

    **Elasticsearch+Maven测试Demo详解** 在Java开发中,Elasticsearch作为一个强大的全文搜索引擎,常被用于处理大量数据的检索与分析。Maven作为项目管理工具,可以帮助我们管理和构建项目,使得依赖管理和构建流程...

    spring mybatis maven测试项目

    在这个“spring mybatis maven测试项目”中,我们将探讨这三个组件如何协同工作,以及如何利用它们进行高效的应用程序开发。 首先,Spring是一个开源的应用框架,它提供了对IoC(Inversion of Control,控制反转)...

    读书笔记:OSGI 实战 整合Maven 测试代码 .zip

    读书笔记:OSGI 实战 整合Maven 测试代码

    maven 测试demo

    这个“maven 测试demo”是一个简单的Maven项目示例,可能包含一个基本的pom.xml文件,展示了如何配置依赖、插件以及构建过程。开发者可以根据这个示例进一步了解和实践Maven的使用方法,例如添加新的依赖、编写...

    maven 测试写入JRE参数实例详解

    maven 测试写入JRE参数实例详解 项目在测试时碰到一个问题,就是JVM加载参数的问题。 web项目本身在注入配置信息的时候,读取的是本地的配置文件,但是配置文件的位置是卸载tomcat 里面配置的JAVA_OPTS里面的。 ...

    Maven的Dependency测试

    **Maven的Dependency测试** 在Java开发中,Maven是一个不可或缺的构建工具,它通过管理项目的依赖关系,简化了项目的构建、编译和部署过程。本文将深入探讨Maven的Dependency测试方面,帮助开发者理解如何有效地...

    selenium+java+testng+maven测试用例执行

    "Selenium+Java+TestNG+Maven"是一个常见的自动化测试框架组合,广泛应用于Web应用的端到端测试。下面将详细介绍这个组合中的各个组件及其在测试用例执行中的作用。 1. Selenium:Selenium 是一个开源的 Web 自动化...

    maven测试一下,请不要下载

    maven资源测试一下,请不要下载

    掌握Maven测试的钥匙:surefire-plugin使用全指南

    3. **构建生命周期**:Maven定义了一系列的构建阶段(如编译、测试、打包、部署等),每个阶段都有对应的目标(goals)可以执行。 4. **插件和目标**:Maven拥有丰富的插件系统,可以通过插件扩展构建过程。每个...

    maven的环境搭建、配置和测试

    ### 六、Maven测试 Maven支持JUnit、TestNG等测试框架。在`pom.xml`中添加对应的测试插件,并在`src/test/java`目录下编写测试类。例如,使用JUnit: ```xml &lt;groupId&gt;org.apache.maven.plugins ...

    maven-test-mode:用于导航测试文件和运行 maven 测试任务的实用程序

    Maven 测试模式 这种次要模式为 java-mode 提供了一些增强功能,以便轻松使用 maven 测试任务。 它主要基于 Peter Williams 的“rspec-mode”哲学。 即,它提供以下功能: 在测试和它的类之间来回切换(绑定到\Cc ...

    maven_testing:这只是 maven 测试

    在这个项目中,“maven_testing”是一个专注于Maven测试的示例。Maven是一个流行的Java构建工具,它自动化项目的构建、依赖管理和项目信息管理。通过Maven,开发者可以方便地定义项目结构、依赖关系,并执行构建过程...

    dubbo单元测试maven项目

    2. **Maven测试框架**:Maven作为项目管理工具,包含了丰富的插件支持单元测试。通常我们会使用JUnit作为测试框架,配合Mockito等库来模拟依赖服务,创建隔离的测试环境。 3. **单元测试**:对于每个服务,编写单元...

    my-app:Maven测试

    当提到"my-app:Maven测试"时,我们探讨的是如何使用Maven来测试一个名为"my-app"的Java应用程序。"my-app"可能是一个企业级应用,也可能是一个简单的桌面应用或Web应用,但无论其规模大小,Maven的测试支持都是关键...

    maven-test:测试Maven的工作方式

    ** Maven测试:理解Maven的工作方式 ** Maven是一个强大的Java项目管理工具,它通过一套标准的构建生命周期和约定优于配置的理念,简化了项目的构建、依赖管理和文档生成过程。在Maven的世界里,测试是项目生命周期...

    Maven_02:第一个Maven测试

    在创建第一个Maven测试之前,你需要确保已经安装了Maven。你可以访问Maven官网下载最新版本,并按照指南进行安装。同时,你也需要一个集成开发环境(IDE),如IntelliJ IDEA或Eclipse,这些IDE都支持集成Maven。 1....

    自用maven 测试

    4. **运行测试**: Maven调用JUnit或其他测试框架执行测试,并生成测试报告。 5. **打包**: 根据项目类型(如jar、war等),Maven将编译后的结果打包成相应的格式。 6. **部署**: Maven可以将打包好的文件部署到远程...

Global site tag (gtag.js) - Google Analytics