最近部门内部升级测试框架,把junit4升级到了junit5,在导入新包的时候发现,maven自动下载后的junit5包已经在library里了,但是在测试代码端import junit5下对应的方法,却显示cannot resolve symbol TestCase。
在网上查阅了很多资料都没有解决,最后发现问题出在pom文件dependency上,其中加入了一个scope参数,查阅了相关资料后发现,scope是标识依赖的有效范围了传递性的。当标识为test的时候,依赖包只有在测试的时候才有效,而本次的项目是部门内部的测试框架,所以我在compile的时候就用到了junit里的测试类,这时候设置scope为test则导致idea报错找不到类。所以此处可设置scope为compile或者去掉该属性(默认值为compile)则可成功将需要的jar加入到classpath里。
附上官方文档对scope参数的介绍https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html