gradle安装单元测试坎坷历程
参考,欢迎点击原文:https://blog.csdn.net/qq_42815122/article/details/85395111(灵感)
自己写的用户系统要加上单元测试,加就加吧,跟着网上的好几篇文章都走不通,会报错。but公司的项目却能够很直接的执行成功,再多次尝试百度找到解决办法无果后,决定照着公司的项目慢慢改和摸索了
开始时候写ServiceTest时候上面两个注解没有,需要引入测试包
// test
testImplementation group: 'junit', name: 'junit', version: '4.12'
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
注解成功引入。
接下来直接执行我写的test方法吧,发现报错,如下图
这个是没有找到test工具吧,于是百度,好几个说把这边gradle的test改成idea的test就好了,我改了
再跑下继续报错,如下图
这就是启动框架时候出问题了,这不问题更大么,算了我还是照着公司项目走吧,使用gradle跑单元测试,继续回归本源看build.gradle,发现底下的测试调用的方法不能点,而公司的项目可以点
看了公司项目如果使用gradle跑单元测试的话会使用gradle/wrapper/gradle-wrapper.properties,这里面写的是下图
就是定义了使用哪里的gradle和gradle的版本,我想换成公司的gradle版本4.1让这个方法可以点,然后再跑下,提示英文跟我的springboot2.6.6版本不兼容,好吧,不改这个gradle-wrapper.properties了
然后继续百度看文章有没有些灵感,看到可以把底下的改成下图这个形式,发现可以点了
先保留吧
接着继续跑下测试,还是报之前那个错
想了想test没有找到,难道是@Test注解出了问题?对比下公司项目,果然引错了
我把改成了import org.junit.jupiter.api.Test;
继续跑,继续报错,如下图
虽然报错信息很多,我也看不了这么多,最后有个链接,我点开发现有个网页专门用来显示你的测试的,如下图
我点开这个方法的报错详情,继续百度,看到一个小哥文章提示的很好,说就看Caused by
后面的东西,看了后我发现说
抛异常除了问题,因为我是用的是公司包的抛异常,所以这块是很让人纠结的,是公司包的抛异常出来了,还是就是公司包抛异常除了问题,emmm死马当活马医,看下公司的包,发现compileOnly,只在编码的时候生效,这不行啊,我这是测试阶段啊,要放出来,于是改成了implementation。
再试下,可以了
总结:gradle更熟练会少很多事
下图总结图