maven的重要职责之一就是自动运行单元测试,它通过maven-surefire-plugin与主流的单元测试框架junit和testng集成,并且能够自动生成丰富的结果报表。

  maven并不是一个单元测试框架,他只是在构建执行打特定的生命周期阶段的时候,通过插件来执行JUnit或testNG的测试用例,这个插件就是maven-surefire-plugin,也叫做测试运行器。maven-surefire-plugin会自动执行测试源码路劲下(src/test/java)的所有符合以下命名模式的测试用例

  **/Test*.java:任何子目录下的所有命名以Test开头的java类

  **/**Test.java:任何子目录下的所有命名以Test结尾的java类

  **/**TestCase.java:任何子目录下的所有命名以TestCase结尾的java类

  只要将测试类按上述模式命名,maven就能自动运行它们,用户也就不再需要定义测试集合(testsuite)来聚合测试用例了。

  当然也可以自定义来包含一些不符合上述命名规则的测试类,以下定义以Tests结尾的用例:

1
2
3
4
5
6
7
8
9
10
<plugin>
  <groupId>org.apache.maven.plugin</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5<version>
  <configuration>
    <includes>
       <include>**/*Tests.java</include>
    </includes>
  </configuration>
</plugin>

日常工作中,软件开发人员总有很多理由来跳过单元测试,“我敢保证这次改动不会导致任何测试失败,测试运行太耗时了,暂时跳过一,有持续集成服务跑所有测试呢,我本地就不执行啦。在大部分情况下,这想法都是不对的。任何改动都要交给测试去验证,测试运行耗时过长应该考虑优化测试,更不要完全依赖持续集成服务来报告错误,测试错误应该尽早在尽小范围内发现,并及时修复。

  maven同时也可以通过设置skipTest来跳过测试。

测试报告:

  surefire会在target-report下生成两种格式的错误与报告,简单文本格式和支持JUnit的XML格式。

测试覆盖率报告:

  cobertura是一个开源的测试覆盖率统计工具,使用时添加插件cobertura-maven-plugin

testng:

  可以使用testing.xml的文件,来配置想要运行的测试集合。然后再pom文件里在配置使用该文件。

用maven进行测试的更多相关文章

  1. 通过Maven配置测试环境和开发环境连接不同的数据库

    通过Maven配置测试环境和开发环境连接不同的数据库   作者及来源: 通灵宝玉 - 博客园    收藏到→_→: 此文来自: 马开东博客 网址:http://www.makaidong.com   ...

  2. Maven聚合、Maven仓库jar包以及Spring+MyBatis+JUnit+Maven整合测试的搭建过程

    一.Maven将父项目创建到父项目的内部 在父项目的pom.xml上 点右键,选择maven-->new-->maven module  project 二.Maven聚合 在某个项目的p ...

  3. TestNG+Jenkins+Maven参数化测试dubbo接口

    1.TestNG参数化测试用例: package com.tree.autotest.testcase.IUserBankSummaryService; import com.datatrees.fi ...

  4. spring ----> aop测试需要的Maven依赖/测试时发生的一个exception

    <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> &l ...

  5. 02.基于IDEA+Spring+Maven搭建测试项目--详细过程

    一.背景介绍 1.1公司相关技术 Git:是一款免费的开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,方便多人集成开发 Maven:是基于项目对象模型(POM),可以通过一小段描述信息 ...

  6. 01.基于IDEA+Spring+Maven搭建测试项目--综述

    目前公司的测试工作中常见两种接口:HTTP和Dubbo,这两种接口类型均可以使用相关测试工具进行测试,但都会有一定的局限性和不便之处,具体如下: 1.HTTP接口,当需要对于参数进行加密解密时,就得对 ...

  7. 《Maven实战》第10章 使用Maven进行测试

    10.2maven-surefire-plugin插件 [生命周期]的[阶段]与[插件]的[目标]绑定 default生命周期的test阶段:使用单元测试框架运行测试 Maven内置绑定:defaul ...

  8. 使用maven进行测试设置断点调试的方法

    在Maven中配置测试插件surefire来进行单元测试,默认情况下,surefire会执行文件名以Test开头或结尾的测试用例,或者是以TestCase结尾的测试用例.               ...

  9. 08.基于IDEA+Spring+Maven搭建测试项目--Maven的配置文件settings.xml

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...

随机推荐

  1. .Net码农学Android---前言

    自从毕业参加工作后,就一直想学移动领域得开发,但时间.精力.决心.学习成本等这些问题总在不同程度的阻碍着自己. 但这段时间自己想做一款属于自己的App的想法越来越强烈,我感到自己快压不住这股能量了.终 ...

  2. MySQL监控工具-orztop

    先安装orzdba,链接:http://blog.itpub.net/28939273/viewspace-1875895/ 安装依赖的包:[root@hank-yoon servers]# yum ...

  3. 批量kill mysql processlist进程

    如果大批量的操作能够通过一系列的select语句产生,那么理论上就能对这些结果批量处理.但是mysql并没用提供eval这样的对结果集进行分析操作的功能.所以只能现将select结果保存到临时文件中, ...

  4. 【js】js 让图片旋转

     转http://www.cnblogs.com/ustcyc/p/3760116.html 核心: canvas.style.filter = "progid:DXImageTransfo ...

  5. ios系统 处理内存警告

    iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息.收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露 ...

  6. 在Visual Studio 2010 中创建类库(dll)

    创建类库 选择"文件"->新建->项目->Visual C# ->类库,输入名称,选择位置,单击确定 浏览解决方案资源管理器,可以看到两个C#类,第一个是A ...

  7. SVN的405错误

    错误1: 如果你没有阅读以下文字,活该你倒霉(这段文字是在googlecode添加新项目时生成的): Command-line access If you plan to make changes, ...

  8. [sql server、oracle] 分组取最大值最小值常用sql

    sqlserver2005前: --分组取最大最小常用sql--测试环境if OBJECT_ID('tb') is not null drop table tb;gocreate table tb(  ...

  9. Ext学习-布局介绍

    1.目标    了解ExtJS中的关于布局和组建的相关原理,并学习相关的布局方式 2.内容   1.布局和组件的相关原理   2.常见的布局方式 3.学习流程    1.首先应该学习一下布局和组件的相 ...

  10. 【贪心】Bzoj 2457:[BeiJing2011]双端队列

    2457: [BeiJing2011]双端队列 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 209  Solved: 95[Submit][Stat ...