【1】Maven打包跳过单元测试
错误描述如下:
程序中使用junit进行测试,当启动项目的时候,控制台报错,如下图。
POM.xml:
<!-- junit 测试 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency>
该xml配置中scope为test,也就是不参与打包。但这并不意味着项目启动时,加载class会跳过junit!当你引入的包中有junit时,项目启动同样会加载该包!这时就会出现如图所说的错误(scope为test)。
解决办法:跳过junit!插件配置如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>
如果是Linux使用脚本进行打包,可以如下格式跳过单元测试:
//跳过执行单元测试 mvn install -DskipTests //跳过编译单元测试 mvn install -Dmaven.test.skip=true
【2】maven-surefire-plugin插件使用
官网地址:https://maven.apache.org/plugins/index.html
官网描述如下:在独立的类加载器中运行JUnit单元测试。
在插件详情页中详细说明了该插件使用场景并列出了实例。
这个插件在项目构建生命周期的test阶段用来执行单元测试,通常会产生两种格式的测试报告,测试报告默认路径在${basedir}/target/surefire-reports/
。
Plain text files (*.txt) XML files (*.xml)
该插件其他使用实例如下图:
【3】maven-surefire-report-plugin与单元测试报告
如果想生成测试报告,则需要配置插件如下:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>3.0.0-M3</version> </plugin>
运行单元测试则会在${basedir}/target/surefire-reports/生成两种格式的测试报告文件:
具体使用详情参看官网:https://maven.apache.org/surefire/maven-surefire-report-plugin/usage.html