您的位置:首页 > 其它

如何使用Maven进行测试

2016-12-22 13:53 211 查看

如何使用Maven进行测试

Maven的重要职责之一就是自动运行单元测试,它通过maven-surefire-plugin与主流的单元测试框架JUnit3、JUnit4以及TestNG集成,并且能够自动生成丰富的结果报告。

test阶段被定义“使用单元测试框架运行测试”。生命周期阶段需要丙丁某个插件的目标才能完成真正的工作,test阶段正式与maven-surefire-plugin的test目标相绑定,这是一个内置的绑定。

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

*/Test.java

**/*Test.java

**/*TestCase.java

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

跳过测试

在命令行里加入参数 skipTests就可以跳过测试的执行

配置 POM 让项目长时间跳过单元测试

<configuration>
<skipTests>true</skipTests>
</configuration>


maven package -Dmaven.test.skip = ture,参数maven.test.skip同时控制了maven-compiler-plugin和maven-surefire-plugin两个插件,测试代码编译跳过了,测试运行也跳过了

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

maven-surefire-plugin 提供了一个test参数

$ mvn test -Dtest = RadomGeneratorTest


也支持模式匹配,多个测试用例

包含与排除测试用例

包含 include

<configuration>
<includes>
<include>**/*Test.java<include>
<includes>
</configuration>


排除 exclude

测试覆盖率报告

$mvn cobertura:cobertura

重用测试代码

牛逼程序员会想对待产品代码一样细心维护测试代码,尤其是那些具体测试类继承的抽象类,它们能够简化测试代码的编写。

在命令行运行mven package的时候,Maven会将项目的主代码及资源文件打包,将其安装或部署仓库之后,这些代码就能为他人使用,从而实现Maven项目级别的重用。默认的打包行为是不会包含测试代码的,因此在使用外部依赖的时候,其构件一般都不会包含测试代码。

maven-jar-plugin

<executions>
<execution>
<goals>
<goal>test-jar<goal>
</goals>
</execution>
</executions>


maven-jar-plugin有两个目标,分别是jar和test-jar,前者通过Maven的内置绑定在default生命周期的package阶段运行,其行为就是对项目主代码进行打包,而后者并没有内置绑定,因此上述的插件配置显式声明该目标来打包测试代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven 测试 单元测试