使用 Maven 进行测试
来源:互联网 发布:csol怒海狂鲨数据 编辑:程序博客网 时间:2024/06/05 04:37
- 安装和配置
- 坐标和依赖
- 仓库
- 生命周期和插件
- 聚合与继承
- 使用 Maven 进行测试
- 灵活的构建
- Archetype
- 附录
使用 Maven 进行测试
- maven-surefire-plugin
maven-surefire-plugin 称这为测试运行器(Test Runner),它能很好的兼容 JUnit3、JUnit4 以及 TestNG。maven-surefire-plugin 的 test 目标默认和 default 生命周期的 test 阶段绑定,这是一个内置的绑定。默认情况下 maven-surefire-plugin 的 test 目标会自动执行测试源路径(默认为 src/test/java/)下所有符合一组命名模式的测试类。这组模式为:
- **/Test*.java : 任何子目录下所有命名以Test 开头的 Java类。
- **/*Test.java : 任何子目录下所有命名以Test 结尾的 Java类。
**/*TestCase.java : 任何子目录下所有命名以TestCase 结尾的 Java类。
- 跳过测试
实际开发中有时候可能需要跳过测试,这很简单,在命令行加入参数 skipTests 就可以了。例如:
$ mvn package -DskipTests
当然还可以在 POM 中配置 maven-surefire-plugin 插件来提供该属性,如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skipTests>true</skipTests> </configuration></plugin>
但这是不推荐的做法,如果配置 POM 让项目长时间地跳过测试,那就失去测试代码的意义了。
有时候我们不仅仅想跳过测试运行,还想跳过测试代码的编译,Maven 也是允许你这么做的,如下 :
$ mvn package -Dmaven.test.skip=true
参数 maven.test.skip 同时控制了 maven-compiler-plugin 和 maven-surefire-plugin 两个插件的行为,测试代码编译跳过,测试运行也跳过了。当然 maven.test.skip 也可以在 POM 中配置,如下 :
<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>
实际上 maven-compiler-plugin 的 compile 目标和 maven-surefire-plugin 的 test 目标都提供了一个参数 skip 用来跳过测试编译和测试运行,而这个参数对应的命令表达式 maven.test.skip。
- 动态指定要运行的测试用例
反复运行单个测试用例是日常开发中常见的行为。maven-surefire-plugin 提供了一个 test 参数让 Maven 用户能够在命令行指定要运行的测试用例。例如:
$ mvn test -Dtest=AppTest
这里的 test 参数的值是测试用例的类名,这行命令的效果就是只有 AppTest 这一个运行测试用例得到运行。当然 test 参数还支持高级一些的赋值方式,如下:
// 星号可以匹配堆个或多个字符,上述命令会运行项目中所有类名以 Test 结尾的测试类$ mvn test -Dtest=*Test// 该命令的 test 参数值是两上测试类名,它们之间用逗号隔开,其效果就是告诉 Maven 只运行这两个测试类$ mvn test -Dtest=AppTest,UserTest// 当然还可以结合星号和逗号使用如:$ mvn test -Dtest=AppTest,User*
test 参数的值必须匹配一个或者多个测试类,不然就会报错并导致构建失败,但是提供了一个参数 failifNoTests=false 让没有匹配到测试类也能顺利构建,其实这也是一种跳过测试的方法。可惜的是 maven-surefire-plugin 并没有提供作保参数支持我们从命令行跳过指定的测试类,好在我们还可以通过 在 POM 中配置 maven-surefire-plugin 排除特定的测试类。
- 包含与排除测试用例
Maven 提倡约定优于配置的原则,因此只要符合约定命名模式的测试类就会自动执行。即便如此,maven-surefire-plugin 还是允许用户通过额外的配置来自定义一些其它的测试类,或者排除一些符合默认命名模式的测试类。配置如下 :
<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>**/AppTest.java</exclude> </excludes> </configuration></plugin>
上述代码中的 includes 元素用来指定那些不符合 Maven 默认命名模式的测试类,注意‘*.java*’
后缀。excludes 元素用来指定那些符合 Maven 默认命名模式又不需要运行的测试类。
- 使用Maven进行测试
- 使用Maven进行测试
- 使用 Maven 进行测试
- 如何使用Maven进行测试
- 使用jetty-maven-plugin插件进行测试
- 使用jetty-maven-plugin插件进行测试
- Maven学习笔记(九):使用Maven进行测试
- 使用maven编译YCSB0.1.4对cassandra进行性能测试
- 使用jetty-maven-plugin插件进行测试---学习笔记
- IntelliJ IDEA 配合Maven使用Junit进行代码测试
- IntelliJ IDEA 配合Maven使用Junit进行代码测试
- maven打包不进行测试
- 使用Maven进行编译
- 使用JUnit进行测试
- 使用JUnit 进行测试
- 使用 PHPUnit 进行测试
- 使用RestTemplate进行测试
- maven中使用spring的test包结合junit4进行测试。
- Tomcat的项目发布三种方式
- Qt官方的安装包制作框架
- dedecms 关于二级域名和一级域名切换
- Storm DRPC
- C++类和对象等基本知识整理
- 使用 Maven 进行测试
- 由uboot中makefile的两个all引出的问题
- javascript语言基础总结回顾
- Http协议获取图片数据流(GET方式)
- 常见的浏览器兼容以及css问题
- HTTP Status 500
- HTML5的段落和文字样式设置
- sqrt函数实现(神奇的算法)
- Jackson系统给您介绍何为娱乐文化优先股!