一、问题描述
在日常工作中,在接手项目时,项目未必是“正常”的,一般平常搭建项目,都不会采用一键式生成的方式,现在说下旧项目,可能项目结构并不是那么简洁,通常都带有与main同层级的test,如下
这种一键式生成的项目,附带的这个test,在使用maven打包时,大部分都会出现打包不成功的类似如下报错
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project wzcommon: There are test failures.
这个玩意儿,大概就是你打包的时候,如果不跳过test,他会默认去校验你test下的方法或者注入的内容,也可能是修饰符或者类注解的引入不对,也可能的idea版本,基本都遇到过,下面图1,就是不正常的,这种一看就是项目默认生成的,图二才是正常我们写测试类的形式,图二那样才是正常的,所以一般要么不要test要么要写就写正确。
二、解决办法
2.1使用mvn命令
此种在参数后指定跳过test,但是有时候可能有问题,最好先clean。
mvn clean package -DskipTests -Pdev
2.2在右侧maven,禁用test
这种办法是最便捷的
2.3在pom引入配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
2.4删除test下的类
此种慎用,删之前记得备份哦!
总结下,支持选用2.1和2.2方式,在面对开发任务繁重,test下的测试类确实是一种负担,不过想要养成良好的编码习惯,保留test还是必要的,毕竟写的功能不能不经过测试就上线吧,哈哈!!!共勉!!!