Maven测试篇
Maven的生命周期:
- clean生命周期:负责项目的清理工作;
- default生命周期:负责项目的部署;
- site生命周期:负责创建项目的文档站点;

- mvn clean
- mvn package
- mvn clean package
- mvn test
引用“maven-surefire-plngin”插件依赖
- <project>
- [...]
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- [...]
- </project>
整合TestNG
- <dependencies>
- [...]
- <dependency>
- <groupId>org.testng</groupId>
- <artifactId>testng</artifactId>
- <version>6.9.8</version>
- <scope>test</scope>
- </dependency>
- [...]
- </dependencies>
- <!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
- <suite name="testSuite">
- <test name="test">
- <classes>
- <class name=“ATest" />
- </classes>
- </test>
- </suite>
- import org.testng.Assert;
- import org.testng.annotations.Test;
- public class ATest {
- @Test
- public void testIsTrue(){
- A a=new A();
- Assert.assertTrue(a.returnTrue());
- }
- }
- <project>
- [...]
- <build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- <configuration>
- <suiteXmlFiles>
- <suiteXmlFile>testng.xml</suiteXmlFile>
- </suiteXmlFiles>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
- </build>
- […]
- </project>
约定优于配置:
- Test*.java :以Test开头的Java类;
- *Test.java :以Test结尾的Java类;
- *TestCase.java:以TestCase结尾的Java类;
- mvn package -DskipTests

- <project>
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- </plugins>
- </build>
- [...]
- </project>

- mvn package -Dmaven.test.skip=true

- <project>
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.5.1</version>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- </plugins>
- </build>
- [...]
- </project>
动态指定要运行的测试类:
- mvn -Dtest=ATest test
- ”maven-surefire-plugin“插件还支持使用星号匹配测试类名的方式以指定运行特定的测试类,星号表示匹配零个或多个字符。例如只执行”A“开头的测试类:
- mvn -Dtest=A* test
- 除了使用星号匹配,还可以使用逗号指定多个测试类:
- mvn test -Dtest=ATest,BTest
- 同时匹配类名以A开头的测试类和类名为BTest的测试类:
- mvn -Dtest=A*,BTest test
- 当test命令通过参数匹配不到任何测试类时,项目将会构建失败。配置参数DfailIfNoTests=false可以在匹配不到测试类时依旧构建成功:
- mvn -Dtest=AATest -DfailIfNoTests=false test
包含与排除测试用例:
- <project>
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- <configuration>
- <includes>
- <include>**/*Tests.java</include>
- </includes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- [...]
- </project>
- <project>
- [...]
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.20</version>
- <configuration>
- <excludes>
- <exclude>**/CTest.java</exclude>
- <exclude>**/DTest.java</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- [...]
- </project>
参考资料:
Maven文档:http://maven.apache.org/guides/
maven-surefire-plugin 文档:http://maven.apache.org/surefire/maven-surefire-plugin/
=====================================================================
Maven测试篇的更多相关文章
- Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例)
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
- Apache Maven 入门篇 ( 上 )
作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法. 这个入门篇分上下两篇.本文着重动手,用 mav ...
- [转]Apache Maven 入门篇 ( 上 )
原文地址:Apache Maven 入门篇 ( 上 ) 作者:George Ma 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这 ...
- IntelliJ IDEA使用心得之Maven项目篇(转)
IntelliJ IDEA使用心得之Maven项目篇 今天和大家分享下,在IDEA中打开Maven项目的方法. 对于新版的IDEA可以直接打开Maven项目,但是对于旧版的IDEA需要使用Mave ...
- Maven——基础篇
Maven--基础篇 Maven出现前的问题 一个项目就是一个工程,而工程内一般是通过package包来分模块,比较用户模块,订单模块等,如果项目过于庞大,通过包模块来划分就不太合适,而应该拆分为模块 ...
- Maven提高篇系列之(六)——编写自己的Plugin(本系列完)
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
- Maven提高篇系列之(五)——处理依赖冲突
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
- Maven提高篇系列之(四)——使用Profile
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
- Maven提高篇系列之(三)——使用自己的Repository(Nexus)
这是一个Maven提高篇的系列,包含有以下文章: Maven提高篇系列之(一)——多模块 vs 继承 Maven提高篇系列之(二)——配置Plugin到某个Phase(以Selenium集成测试为例) ...
随机推荐
- html 压缩工具 html-minifier
https://github.com/kangax/html-minifier#options-quick-reference 1.参数列表 option Description Default re ...
- WinForm中控件位置不随窗体大小的变化而改变
背景:在窗体开发中使控件的位置不随窗体的大小改变而变化的问题?这是一个同事在开发时遇到的问题,在思考试错之后,写出如下代码. 声明成员: Point m_InitLocation; Size m_In ...
- React之key详解
一个例子 有这样的一个场景如下图所示,有一组动态数量的input,可以增加和删除和重新排序,数组元素生成的组件用index作为key的值,例如下图生成的ui展示: 上面例子中的input组件渲染的代码 ...
- Java设置Excel单元格式
XSSFWorkbook wb = new XSSFWorkbook(); CellStyle style = wb.createCellStyle(); style.setBorderRight(C ...
- 在jquery中each循环中,要用return false代替break,return true代替continue。
在jquery中each循环中,要用return false代替break,return true代替continue. $.each(data, function (n, value) { if(v ...
- oracle 归档日志满 报错ORA-00257: archiver error. Connect internal only, until freed
归档日志满导致无法用户无法登陆 具体处理办法 --用户登陆 Microsoft Windows [Version 6.1.7601] Copyright (c) Microsoft Corporati ...
- Java多线程中线程间的通信
一.使用while方式来实现线程之间的通信 package com.ietree.multithread.sync; import java.util.ArrayList; import java.u ...
- linux性能之iostat
在使用linux系统的过程中,总是可能需要当前io性能的状态信息是怎么样?这里就就是一下iostat,可以通过iostat来初步查看io的状态信息. 1.常用方式 iostat -xdk 1 10 或 ...
- NGINX中的proxy_pass和rewrite
文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6807081.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如 ...
- Mysql net start mysql启动,提示发生系统错误 5 拒绝访问,原因所在以及解决办法
1,Mysql net start mysql启动,提示发生系统错误 5 拒绝访问 在dos下运行net start MySQL 不能启动mysql!提示发生系统错误 5:拒绝访问!切换到管理员模式 ...