maven本身没有单元测试框架,但是maven的default生命周期的test阶段绑定了maven-surefire-plugin插件,该插件可以调用Junit3、Junit4、TestNG等Java流行测试框架完成单元测试。
在pom中加入Junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
约定优于配置
maven的default生命周期的test阶段与maven-surefire-plugin插件的test插件目标内置绑定。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认:src/test/java)下的所有符合一组命名规则的测试类。该命名规则如下:
1. **/Test*.java 任何子目录下所有命名以Test开头的java类
2. **/*Test.java 任何子目录下所有命名以Test结尾的java类
3. **/*TestCase.java 任何子目录下所有命名以TestCase结尾的java类
- 1
- 2
- 3
跳过测试
pom中配置
- skipTests配置,跳过测试执行阶段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- skip配置,跳过测试执行阶段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
mvn命令行中加入参数
- skipTests
mvn clean package -DskipTests=true
- 1
- maven.test.skip(需要注意的是,maven-compiler-plugin插件的testCompile插件目标和maven-resources-plugin插件的testResources插件目标也有这个参数,如果使用-Dmaven.skip.test=true,则跳过了测试资源文件处理、测试代码编译和执行三个阶段。关于maven的生命周期和插件的详细描述,请参考我的另两篇博客:maven生命周期详解和Maven插件详解)
mvn clean package -Dmaven.test.skip=true
- 1
说明:此处的“maven.test.skip”为maven-surefire-plugin插件的test插件目标的参数的表达式,其对应的插件目标参数为上面pom中配置的skip参数。并不是所有插件目标参数都有表达式,也就是说,一些插件目标参数只能在pom中配置。关于插件目标参数和其表达式的详细信息,可以去maven官网的对应插件章查询,地址为:maven官网插件。maven-surefire-plugin中skip的描述如下所示(请放大查看☺):
跳过测试命令执行情况请参考我的另一篇博客:maven跳过单元测试的两个参数区别
动态指定要执行的测试用例
使用test参数可以在命令行指定要执行的测试用例的类名。
1. mvn test -Dtest=demomavenTest 指定单个测试执行类
2. mvn test -Dtest=demo*Test 指定所有以demo开头以Test结尾的测试类
3. mvn test -Dtest=demo*Test, heheTest 以逗号隔开多个指定的测试类
- 1
- 2
- 3
注意:当test参数没有值时,默认构建会失败。此时加上failIfNoTests=false,即使没有测试也不报错:
mvn test -Dtest -DfailIfNoTests=false
- 1
上述命令不会执行任何测试,构建也能顺利完成。这也是一种跳过所有测试完成构建的方法。
包含与排除测试用例
pom中可以配置includes和excludes参数来包含和排除指定的测试类:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/*ServiceTest.java</exclude>
<exclude>**/ServiceTest*.java</exclude>
</excludes>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
(本文是
相关推荐
使用Maven运行单元测试 将项目安装到Maven本地资源库 生成基于Maven的项目文档站点 使用“mvn site-deploy”部署站点(WebDAV例子) 部署基于Maven的war文件到Tomcat Eclipse创建一个Maven Web项目 在易百教程网...
maven 环境搭建总结 maven心得
jacoco单元测试覆盖率+maven DEMO
Maven3实战笔记10——使用Maven进行测试。
maven项目,单元测试jacoco、junit...........................................................................................
maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装maven安装...
使用Maven构建多模块项目
java视频教程之SVN Maven搭建自动化构建教程 Eclipse中使用Maven视频教程云盘下载链接
maven基础知识总结,maven基础知识总结,maven基础知识总结
maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用maven使用...
单元测试覆盖率
在dubbo的注册服务下单元测试,然后扫描 注册上来的各种服务,轻松测试每个注册服务
Maven跳过测试类打包
maven使用文档,maven使用文档 很不错的文档
使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程
maven常用命令以及以个测试项目方便测试
在eclipse中不使用maven创建springboot工程所需jar包,一共32个。亲测各包兼容,完美运行。
maven知识的一些个人梳理,涉及到了Maven的生命周期和命令之类的。
maven工程转web工程
maven相关知识点总结