`
ywu
  • 浏览: 457400 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

第八章 测试

阅读更多

项目上线之前,都需要测试,不然心里虚啊。测试有很多中,单元测试、集成测试、功能测试等等。maven能与主流的单元测试框架如junit集成,能自动运行单元测试,无需我们手工执行单元测试方法,还能自动生成测试报告、测试覆盖率等。

 

maven执行测试任务是用过maven-surefire-plugin插件来完成的。maven-surefire-plugin插件的test目标与default生命周期的test阶段绑定,可运行test执行测试。因此,当我们在命令行输出mvn clean test时,其实执行的是maven-surefire-plugin插件的test目标。

 

默认情况下,maven-surefire-plugin插件的test目标会自动执行测试源码路径(src/test/java)下符合命名模式的类

**/Test*.java

**/*Test.java

**/*TestCase.java

因此,我们要新建单元测试,只需要在src/test/java下新建满足命名模式的单元测试类,然后运行mvn test命令,maven会自动执行满足命名模式的单元测试类的方法。

 

跳过单元测试

如果想跳过单元测试的某个测试方法,可以在测试方法上使用@Ignore注解

如果是跳过真个测试类,有以下三种方法

1、使用-DskipTests参数,在执行构建命令时可以附加参数,如mvn clean test -DskipTests,这样就会跳过测试阶段,这是maven推荐的方式;

2、配置插件


 通过显示配置插件的方式,使用configuration配置跳过测试,覆盖插件默认的行为,这种方式是不推荐的,因为正常我们应该执行单元测试,使用插件往往会在我们没有意识到的情况下跳过了测试,而我们以为是测试通过了;

3、使用-Dmaven.tesk.skip=true参数跳过测试代码的编译,这种方式同样是不推荐的。

 

指定测试用例

有时候我们测试时,某个单元测试失败了,我们需要调试那个失败的测试,而成功的测试可以暂时略过,此时可以通过-D指定测试用例:

1、-Dtest=xxxTest

2、-Dtest=xxx*Test

3、-Dtest=xxx*Test,Testxxx

*用于匹配模式,匹配0或多个字符,逗号用于分隔多个单元测试类。

同样,我们可以在插件中配置包含或排除的单元测试类


 

 

测试报告及覆盖率

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

  • 简单文本格式
  • 与junit兼容的xml格式

当我们在执行mvn test完后,可以在target/surefire-reports目录下查看生成的测试报告。
 我们也可以使用cobertura-maven-plugin插件生成测试报告覆盖率



 

  • 大小: 3.2 KB
  • 大小: 5.6 KB
  • 大小: 4.3 KB
  • 大小: 2.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics