SpringBoot项目Cannot resolve symbol 'SpringBootTest'问题解决
分类:
文章
•
2023-10-10 09:09:40
- 背景
有个比较新的项目目前还没有单测(事实证明是单测没起来,大家手头事情都很多,都没时间去解决它)
- 经过
我先写了一个TestApplication
没有任何问题,OK,接着搞,尝试写一个demo单测
一片飘红,鼠标悬停可以看到:
- 解决方法
网上查询发现可以通过注释scope标签来解决
- 原因以及结论
为什么这样可以解决呢?一开始我以为因为junit的版本太低;因为看到有文章说junit最好使用4.5以上的版本,否则有可能报错,或者报cannot resolve symbol runwith。
所以我采取了下图方式来解决。
但并没有解决我的问题。。。。
最后发现:测试类一般是放在src/test/java,而不是放在src/main/java下.maven在编译的时候,src/main/java下是不引用scope=test的jar,而编译src/test/java下的测试这会引用scope=test的jar,原因可能就是当使用Junit提供的一个注解把原有的main方法替换了,替换成spring提供的 @Runwith的后,scope=???这个时候里面的值就不用test了,test是在测试的时候才起作用,不测试的是不起作用的,要是有的话,这个时候就会找不到SpringJUnitClassRunner.class
然后回头看单测正是放在src/main/java下,最后的最后,我将单测的位置换了一下,换到src/main/java
完美
参考:https://my.oschina.net/u/4115727/blog/3051055