博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9,使用maven进行测试
阅读量:5958 次
发布时间:2019-06-19

本文共 4222 字,大约阅读时间需要 14 分钟。

hot3.png

一. account-captcha

      com.google.code.kaptcha:kaptcha是一个用来生成验证码的开源类库。其项目主页为:http://code.google.com/p/kaptcha Kaptcha 并没有上传到中央仓库,我们可以从Sonatype Forgehttp://repository.sonatype.org/content/groups/forge/ )仓库获得该构件。

二. maven-surefire-plugin简介

      Maven 本身并不是一个单元测试框架,它只是在构建执行到特定生命周期阶段的时候,通过插件来执行 JUnit 或者TestNG 的测试用例。这一插件就是 maven-surefire-plugin ,可以称其为测试运行器( Test Runner ),它能很好地兼容 JUnit3 、 JUnit4 以及 TestNG 。

    在默认情况下, maven-surefire-plugin 的 test 目标会自动执行测试源码目录(默认为 src/test/java/ )下所有符合以下命名模式的测试类:

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

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

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

三. 跳过测试

    可以设置 -DskipTetst 命令行参数跳过测试的执行,也可以在 POM 中配置如下信息:

org.apache.maven.plugins
maven-surefire-plugin
2.5
true

    可以设置 -Dmaven.test.skip=true 跳过测试代码的编译和执行,也可以在 POM 中配置如下:

org.apache.maven.plugins
maven-compiler-plugin
2.1
true
org.apache.maven.plugins
maven-surefire-plugin
2.5
true

    实际maven-compiler-plugintestCompilemaven-surefire.plugintest都提供了一个参数skip,它的命令行表达式为maven.test.skip

四. 动态指定要运行的测试用例

      maven-surefire.plugin 提供了一个 test 参数,让 Maven 用户可以只运行指定的测试用例, test 参数的值是想指定的测试用例的类名,同时该参数还支持多个值以及通配符 : mvn test –Dtest=Random*Test,AccountCaptchaServiceTest 。如果指定的类名不存在,会导致构建失败,但可以通过 -DfailIfNoTests=false 来避免失败。

五. 包含与排除测试用例

    除了默认命名的测试文件 Maven 可以在 POM 配置中指定想包含或者想排除的测试类:

org.apache.maven.plugins
maven-surefire-plugin
2.5
**/*Tests.java
**/*ServiceTest.java
**/TempDaoTest.java

    两个星号 ** 用来匹配任意路径,一个星号 * 匹配除路径分隔符外的 0 个或多个字符。

六. 测试报告

1. 基本的测试报告

    默认情况下, maven-surefire-plugin 会在项的 target/surefire-reports 目录下生成两种格式的错误报告:

        1)简单文本格式

        2)与 JUnit 兼容的 XML 格式(是 Java 单元测试报告的事实标准,可以用 Eclipse 的 JUnit 插件直接打开,也可以被Hudsonw 使用。)

2. 测试覆盖率报告

        Cobertura是一个优秀的开源测试覆盖率统计工具(http://cobertura.sourceforge.net/)Maven通过cobertura-maven-plugin与之集成,用户可以使用如下命令为Maven项目生成测试覆盖率报告:

        $ mvn cobertura:cobertura

    打开 target/site/cobertura/index.html 文件就能看到具体的报告。

七. 运行TestNG测试

        TestNG 是 Java 社区中除 JUnit 之外另一个流行的单元测试框架( http://testng.org )。使用 Maven 运行 TestNG时,首先需要删除 POM 中的 JUnit 依赖,加入 TestNG 依赖:

org.testng
testing
5.9
test
jdk15

        TestNG 使用 classifier jdk15 和 jdk14 为不同 Java 平台提供支持。

    可以在项目根目录下定义如下 testng.xml 文件来配置测试类的集合:

    再配置 maven-surefire-plugin 使用该 testng.xml :

org.apache.maven.plugins
maven-surefire-plugin
2.5
testing.xml

        TestNG 支持测试组的概念,能让用户在方法级别对测试进行归类:@Test ( groups = { “util”, “medium”} ),JUnit 只能支持类级别的测试归类。

        Maven 用户可以配置运行一个或者多个 TestNG 测试组:

org.apache.maven.plugins
maven-surefire-plugin
2.5
util,medium

八. 重用测试代码

        Maven 用户可以通过配置 maven-jar-plugin 将测试类打包,从而可以让别的项目重用测试代码:

org.apache.maven.plugins
maven-jar-plugin
2.2
test-jar

        maven-jar-plugin 有两个目标,分别是 test 和 test-jar ,前者通过 Maven 的内置绑定在 default 生命周期的package 阶段运行,作用是对项目主代码进行打包,而后者没有内置绑定,其默认绑定生命周期阶段为 package 。

    在声明一个测试包构件依赖时, type 元素的值需要设定为 test-jar :

com.juvenxu.mvnbook.account
account-captcha
1.0.0-SNAPSHOT
test-jar
test

转载于:https://my.oschina.net/hongdengyan/blog/150607

你可能感兴趣的文章
走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
2013 Linux领域年终盘点
查看>>
linux学习之查看程序端口占用情况
查看>>
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>
javascript 操作DOM元素样式
查看>>
Android 内存管理 &Memory Leak & OOM 分析
查看>>
【查找算法】基于存储的查找算法(哈希查找)
查看>>