- 浏览: 129586 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
mr_wangjq:
...
跟着官网学Struts2使用(一) -
雪馨25:
sweat89 写道嗯,楼主的学习方法,很值得我学习。加油!! ...
跟着官网学Struts2使用(一) -
雪馨25:
381895649 写道建议用用springmvc,哈.嗯,都 ...
跟着官网学Struts2使用(一) -
sweat89:
嗯,楼主的学习方法,很值得我学习。加油!!
跟着官网学Struts2使用(一) -
381895649:
建议用用springmvc,哈.
跟着官网学Struts2使用(一)
1.maven-surefire-plugin简介
Maven本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行JUnit或者TestNG的测试用例。这个插件就是maven-surefire-plugin,也可以称为测试运行器(Test Runner),它能兼容JUnit 3、JUnit 4以及TestNG。
在默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认为src/test/java/)下所有符合一组命名模式的测试类。这组模式为:
- **/Test*.java:任何子目录下所有命名以Test开关的Java类。
- **/*Test.java:任何子目录下所有命名以Test结尾的Java类。
- **/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类。
2.跳过测试
要想跳过测试,在命令行加入参数skipTests就可以了。如:
- mvnpackage-DskipTests
也可以在pom配置中提供该属性。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
有时候可能不仅仅需要跳过测试运行,还要跳过测试代码的编译:
-
mvnpackage-Dmaven.test.skip=true
<plugin>
<groupId>org.apache.maven.plugin</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>
3.动态指定要运行的测试用例
maven-surefire-plugin提供了一个test参数让Maven用户能够在命令行指定要运行的测试用例。如:
- mvntest-Dtest=RandomGeneratorTest
也可以使用通配符:
- mvntest-Dtest=Random*Test
或者也可以使用“,”号指定多个测试类:
-
mvntest-Dtest=Random*Test,AccountCaptchaServiceTest
-
mvntest-Dtest
- mvntest-Dtest-DfailIfNoTests=false
由此可见,命令行参数-Dtest -DfailIfNoTests=false是另外一种路过测试的方法
4.包含与排除测试用例
如果由于历史原因,测试类不符合默认的三种命名模式,可以通过pom.xml设置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>**/*ServiceTest.java</exclude> <exclude>**/TempDaoTest.java</exclude> </excludes> </configuration> </plugin>
5.生成测试报告
5.1基本测试报告
默认情况下,maven-surefire-plugin会在项目的target/surefire-reports目录下生成两种格式的错误报告。
- 简单文本格式——内容十分简单,可以看出哪个测试项出错。
- 与JUnit兼容的XML格式——XML格式已经成为了Java单元测试报告的事实标准,这个文件可以用其他的工具如IDE来查看。
5.2测试覆盖率报告
测试覆盖率是衡量项目代码质量的一个重要的参考指标。Cobertura是一个优秀的开源测试覆盖率统计工具(详见http://cobertura.sourceforge.net/),Maven通过cobertura-maven-plugin与之集成,用户可以使用简单的命令为Maven项目生成测试覆盖率报告。运行下面命令生成报告:
-
mvncobertura:cobertura
6.运行TestNG测试
TestNG是Java社区中除了JUnit之外另一个流行的单元测试框架。TestNG在JUnit的基础上增加了很多特性,其站点是http://testng.org/
.添加TestNG依赖:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>5.9</version> <scope>test</scope> <classifier>jdk15</classifier> </dependency>
下面是JUnit和TestNG的常用类库对应关系
JUnit类 | TestNG类 | 作用 |
org.junit.Test | org.testng.annotations.Test | 标注方法为测试方法 |
org.junit.Assert | org.testng.Assert | 检查测试结果 |
org.junit.Before | org.testng.annotations.BeforeMethod | 标注方法在每个测试方法之前运行 |
org.junit.After | org.testng.annotations.AfterMethod | 标注方法在每个测试方法之后运行 |
org.junit.BeforeClass | org.testng.annotations.BeforeClass | 标注方法在所有测试方法之前运行 |
org.junit.AfterClass | org.testng.annotations.AfterClass | 标注方法在所有测试方法之后运行 |
TestNG允许用户使用一个名为testng.xml的文件来配置想要运行的测试集合。如在类路径上添加testng.xml文件,配置只运行RandomGeneratorTest
<?xml version="1.0" encoding="UTF-8"?> <suite name="Suite1" verbose="1"> <test name="Regression1"> <classes> <class name="com.juvenxu.mvnbook.account.captcha.RandomGeneratorTest" /> </classes> </test> </suite>
同时再配置maven-surefire-plugin使用该testng.xml,如:
<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>
TestNG较JUnit的一大优势在于它支持测试组的概念。如可以在方法级别声明测试组:
Java代码
-
@Test
(groups={
"util"
,
"medium"
})
然后可以在pom中配置运行一个或多个测试组:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <groups>util,medium</groups> </configuration> </plugin>
7.重用测试代码
当命令行运行mvn package的时候,Maven只会打包主代码及资源文件,并不会对测试代码打包。如果测试代码中有需要重用的代码,这时候就需要对测试代码打包了。
这时候需要配置maven-jar-plugin将测试类打包,如:
<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>maven-jar-plugin有两个目标,分别为jar和test-jar。这两个目标都默认绑定到default生命周期的package阶段运行,只是test-jar并没有在超级POM中配置,因此需要我们另外在pom中配置。
现在如要引用test-jar生成的测试代码包,可以如下配置:
<dependency> <groupId>com.juvenxu.mvnbook.account</groupId> <artifactId>account-captcha</artifactId> <version>1.0.0-SNAPSHOT</version> <type>test-jar</type> <scope>test</scope> </dependency>
转载自:http://sin90lzc.iteye.com/blog/1529889
发表评论
-
【负载均衡apache+tomcat+windows系统(二)】配置
2014-02-03 11:11 4307上一小节介绍了,具体的软件安装:【负载均衡apache+to ... -
【负载均衡apache+tomcat+windows系统(一)】软件安装
2014-02-03 11:09 1858一、部署背景 服务器: win2003/win20 ... -
tortoiseSVN的安装
2013-01-10 11:16 914svn安装 -----版本管理 ... -
【初学maven】安装及验证(一)
2012-03-01 11:52 978maven安装 前提:已经先安装并验证了JDK: ... -
java开发快捷键总结
2012-06-13 15:33 781将开发过程中的快捷键的使用,总结,便于强化学习 编辑 ... -
eclipse安装及验证
2012-06-21 17:28 1074我安装的是版本为:eclipse-SDK-3.7.2-wi ... -
设置环境变量
2012-06-21 17:35 759设置环境变量 1、桌面选择“我的电脑”右键选择“属性 ... -
JDK安装及验证
2012-06-21 17:38 1053JDK 版本 jdk-7u2-windows-i586. ... -
jelastic基本使用
2012-07-10 14:32 895二、登录网址 http://jelastic.com/ ... -
【eclipse】eclipse导入Dynamic Web Project项目
2012-08-13 18:13 13431、确定待导入的项目路径(尽量不要包含中文字符),若为压缩文件 ... -
【初学maven】helloword建立(二)
2012-09-11 11:29 806建立helloword 1、 mvn - ... -
【初学maven】仓库搜索添加需要的jar包(三)
2012-09-11 15:00 1553可用仓库网址: http://search.mave ... -
【eclipse】安装插件(SVN为例)
2012-09-12 12:54 8531、打开eclipse后,菜单项选择help->Ins ... -
【selenium】selenium-ide安装及验证
2012-09-12 13:32 1292selenium安装前提 1、安装Firefox浏览器 ... -
SVN库的删除及重建
2012-09-12 13:41 2153下载安装 Windows下的安装 下载地址 ... -
【selenium】selenium安装及验证
2012-09-12 13:47 1165安装前提 jdk安装好 eclipse安装好 ... -
【初学maven】eclipse中maven使用
2012-09-13 10:38 1890一、eclipse里添加maven插件 按照【ecl ... -
【eclipse 】添加user library
2012-10-15 10:51 9861、打开eclipse选择菜单Window->Pre ... -
【JavaWeb】SSH安装及验证
2012-10-15 10:59 816Struts2 下载时压缩包作用 压缩 ... -
结合HSQLDB测试hibernate实例
2012-10-20 23:26 1757一、数据库结构 createtable U ...
相关推荐
这对于单元测试和集成测试非常有用,特别是当我们需要验证应用的邮件发送功能时。 为了开始这个项目,你需要在本地安装Maven,并创建一个新的Maven项目。在项目根目录下,创建一个名为`pom.xml`的文件,这是Maven的...
Maven 2 内置了支持JUnit和其他测试框架的机制,可以自动运行单元测试,并生成测试报告。`mvn test`命令即可执行测试,`mvn install`则会在测试成功后将项目打包并安装到本地仓库。 **7. 部署与发布** `mvn deploy`...
总的来说,“java-jacoco-单元测试覆盖-示例项目”是一个实用的实践案例,它演示了如何在Java项目中集成JaCoCo进行单元测试覆盖率的计算和分析,对于初学者和开发者来说都是一个很好的学习资源。通过深入理解和运用...
在test阶段,Maven使用JUnit等测试框架运行项目中的单元测试;在package阶段,编译后的代码被打包成JAR、WAR或EAR等格式。 此外,Maven的插件系统非常强大,可以通过安装各种插件来扩展其功能,例如生成Javadoc,...
开发者通常会在命令行中执行`mvn clean compile`来清理旧的编译产物并进行新代码的编译,`mvn test`运行单元测试,`mvn package`则会将项目打包成可部署的形式,如JAR或WAR文件。 在实际开发中,Maven通过在`pom....
Maven插件是实现特定构建任务的工具,如编译源代码、创建JAR包、运行单元测试等。每个插件都有多个目标(goals),开发者可以通过指定目标来执行相应的任务。 **5. 依赖管理** 在POM中声明依赖后,Maven会自动解决...
在插件方面,Maven 3.6.2支持了更多的插件和更新了现有的插件,这些插件可以扩展Maven的功能,例如,Javadoc插件用于生成API文档,Surefire插件用于运行单元测试,Failsafe插件则用于集成测试。这些插件的增强使得...
Java单元测试包主要包含了JUnit 4的不同版本,如4.7、4.8和4.11。JUnit是一个用于编写和运行Java单元测试的开源框架,它是Java开发中不可或缺的一部分,尤其是在实施持续集成和敏捷开发时。这个压缩包提供的是JUnit ...
7. **调试和测试**:MyEclipse集成了Maven的测试框架,允许开发者直接在IDE内运行单元测试和集成测试。 8. **使用Maven生命周期**:Maven有一套完整的生命周期,包括清理、初始化、编译、测试、打包、验证、部署等...
### Maven 入门详解 ...本文从 Maven 的基本概念出发,深入介绍了 Maven 的安装配置、settings.xml 文件的配置以及项目目录结构等方面的内容,希望能帮助初学者更好地理解和掌握 Maven 的使用方法。
JUnit单元测试框架是基于Java语言的一种流行的单元测试工具,它的最新版本JUnit 5相比之前的版本有显著的改进和发展。JUnit 5由三个不同的子项目组成:JUnit Platform、JUnit Jupiter和JUnit Vintage。 JUnit ...
例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin用于执行单元测试,maven-jar-plugin则负责创建JAR文件。 在实际开发中,Maven的`settings.xml`文件通常放在用户的主目录下的`.m2`目录下,它...
Maven的插件系统也是其强大之处,通过插件可以扩展Maven的功能,例如进行代码覆盖率分析、单元测试、集成测试等。 此外,书中的内容还会涵盖Maven的依赖管理和解决冲突的方法,如使用 exclusion 标签排除不想要的...
此外,Maven的插件系统允许用户扩展其功能,例如,maven-javadoc-plugin可以生成项目文档,maven-surefire-plugin用于运行单元测试。 MavenIn28Minutes_master.zip这个文件很可能是教程的源码示例,它可能包含了一...
3. **插件系统**:Maven的强大之处在于其插件机制,允许开发者使用各种插件来扩展Maven的功能,例如,可以使用`maven-compiler-plugin`进行Java源代码编译,`maven-surefire-plugin`进行单元测试等。 4. **依赖管理...
开发者可以通过编写插件实现自定义构建任务,如编译源码、生成文档、执行单元测试等。 6. **多模块项目** 对于大型项目,Maven支持多模块结构,每个模块有自己的POM,所有模块共享一个父POM,方便统一管理依赖和...
在软件开发过程中,单元测试是一项至关重要的任务,它能够确保代码的正确性和稳定性。JUnit是Java编程语言中广泛使用的单元测试框架,对于开发者来说,掌握JUnit的使用是提高工作效率和保证代码质量的关键步骤。本...
- 使用JUnit4编写单元测试,测试Service层和DAO层的功能,确保代码的正确性。 本项目中,开发者已经完成上述步骤,并且所有测试都已通过,这意味着整个系统可以正常运行,实现了基本的CRUD操作。这对于初学者来说是...
【标题】:“JAVA单元测试接口作业 (源码 + 说明文档)” 这个资源包主要针对的是Java编程中的单元测试和接口测试,包含了源代码和相关的说明文档,旨在帮助学习者理解和掌握如何在Java项目中进行有效的单元测试以及...