软件开发工程中最好的实践就是为每个方法和每个类进行单元测试,Maven通过Surefire插件支持单元测试功能。、
Maven运行单元测试
通过敲入mvn test
命令,我们可以调用test阶段。由于test阶段处于default生命周期中,所以default生命周期中处于test之前的阶段会被一一调用。test阶段触发Surefire的test目标,这个目标会自动运行项目中的单元测试。
查看target/surefire-reports目录,可以看到单元测试的报告文件。
图片.png用浏览器打开查看:
图片.png这是使用了testNG作为单元测试框架得到的可视化单元测试报告。为了使用testNG,需要先添加dependency,具体如下:
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency>
当然,具体的版本可以按照自己的需要做选择。
跳过单元测试
有时并不想每次都运行一遍单元测试,或者对于不太成熟的团队,并不是所有的单元测试都能通过,此时可能需要跳过单元测试。
跳过单元测试有2中方法,其一是配置Surefire插件的配置,配置其configuration,配置方式如下:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
通过配置skipTests来选择是否跳过单元测试。
图片.png这种方式虽然可以跳过单元测试,但是并不能跳过编译单元测试的代码。也就是说,如果单元测试的代码有问题,还是会出现错误。有没有办法直接连单元测试的代码都跳过呢?当然有,那就是直接跳过test阶段。
mvn –Dmaven.test.skip=true package
通过这个命令,就可以跳过test阶段,直接从compile到package阶段。
从运行的进程来看,test阶段的三个目标都被跳过了。
网友评论