使用maven执行单元测试总结
2015-12-29 10:04
225 查看
maven本身没有单元测试框架,但是maven的default生命周期的test阶段绑定了maven-surefire-plugin插件,该插件可以调用Junit3、Junit4、TestNG等Java流行测试框架完成单元测试。
skip配置,跳过测试执行阶段
maven.test.skip(需要注意的是,maven-compiler-plugin插件的testCompile插件目标和maven-resources-plugin插件的testResources插件目标也有这个参数,如果使用-Dmaven.skip.test=true,则跳过了测试资源文件处理、测试代码编译和执行三个阶段。关于maven的生命周期和插件的详细描述,请参考我的另两篇博客:maven生命周期详解和Maven插件详解)
说明:此处的“maven.test.skip”为maven-surefire-plugin插件的test插件目标的参数的表达式,其对应的插件目标参数为上面pom中配置的skip参数。并不是所有插件目标参数都有表达式,也就是说,一些插件目标参数只能在pom中配置。关于插件目标参数和其表达式的详细信息,可以去maven官网的对应插件章查询,地址为:maven官网插件。maven-surefire-plugin中skip的描述如下所示(请放大查看☺):
跳过测试命令执行情况请参考我的另一篇博客:maven跳过单元测试的两个参数区别
注意:当test参数没有值时,默认构建会失败。此时加上failIfNoTests=false,即使没有测试也不报错:
上述命令不会执行任何测试,构建也能顺利完成。这也是一种跳过所有测试完成构建的方法。
(本文是看了大神徐晓斌的maven3 in action一书的相关章节之后的读书笔记和自己平时使用maven的一些经验,仅用于学习交流。)
在pom中加入Junit依赖
[code]<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency>
约定优于配置
maven的default生命周期的test阶段与maven-surefire-plugin插件的test插件目标内置绑定。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认:src/test/java)下的所有符合一组命名规则的测试类。该命名规则如下:[code]1. **/Test*.java 任何子目录下所有命名以Test开头的java类 2. **/*Test.java 任何子目录下所有命名以Test结尾的java类 3. **/*TestCase.java 任何子目录下所有命名以TestCase结尾的java类
跳过测试
pom中配置
skipTests配置,跳过测试执行阶段[code] <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin>
skip配置,跳过测试执行阶段
[code] <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skip>true</skip> </configuration> </plugin>
mvn命令行中加入参数
skipTests[code]mvn clean package -DskipTests=true
maven.test.skip(需要注意的是,maven-compiler-plugin插件的testCompile插件目标和maven-resources-plugin插件的testResources插件目标也有这个参数,如果使用-Dmaven.skip.test=true,则跳过了测试资源文件处理、测试代码编译和执行三个阶段。关于maven的生命周期和插件的详细描述,请参考我的另两篇博客:maven生命周期详解和Maven插件详解)
[code]mvn clean package -Dmaven.test.skip=true
说明:此处的“maven.test.skip”为maven-surefire-plugin插件的test插件目标的参数的表达式,其对应的插件目标参数为上面pom中配置的skip参数。并不是所有插件目标参数都有表达式,也就是说,一些插件目标参数只能在pom中配置。关于插件目标参数和其表达式的详细信息,可以去maven官网的对应插件章查询,地址为:maven官网插件。maven-surefire-plugin中skip的描述如下所示(请放大查看☺):
跳过测试命令执行情况请参考我的另一篇博客:maven跳过单元测试的两个参数区别
动态指定要执行的测试用例
使用test参数可以在命令行指定要执行的测试用例的类名。[code]1. mvn test -Dtest=demomavenTest 指定单个测试执行类 2. mvn test -Dtest=demo*Test 指定所有以demo开头以Test结尾的测试类 3. mvn test -Dtest=demo*Test, heheTest 以逗号隔开多个指定的测试类
注意:当test参数没有值时,默认构建会失败。此时加上failIfNoTests=false,即使没有测试也不报错:
[code]mvn test -Dtest -DfailIfNoTests=false
上述命令不会执行任何测试,构建也能顺利完成。这也是一种跳过所有测试完成构建的方法。
包含与排除测试用例
pom中可以配置includes和excludes参数来包含和排除指定的测试类:[code] <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>
(本文是看了大神徐晓斌的maven3 in action一书的相关章节之后的读书笔记和自己平时使用maven的一些经验,仅用于学习交流。)
相关文章推荐
- 5 Recent Publications
- android开发--二维码
- PGA初探
- 【原】升级nginx注意点
- Java Struts2: struts.xml 就是超级代码
- 面試收集
- Eclipse安装Maven插件
- iOS开发UI篇—程序启动原理和UIApplication
- angular学习日志09 表单验证 ng-form
- Java基础学习总结(18)——网络编程
- Java基础学习总结(18)——网络编程
- 测试工具
- Java基础学习总结(18)——网络编程
- iisNS 安装程序的思路
- 值得关注的 10 个 Python 英文博客
- devstack安装openstack
- strcmp函数的使用
- xcode storyboard设置按钮圆角
- Unity3D 2D游戏开发 官方教程。(六)
- MonkeyRunner 笔记:录制