关于maven下 使用Spring 集成Junit版本问题

发布于 2021-12-03 20:24:51 字数 818 浏览 883 评论 10

maven建立的测试项目,今天在做测试dao接口的时候,在Spring环境中使用Junit,发现@RunWith(SpringJUnit4ClassRunner.class)这句话报错了,网上找些资料看,说可能是maven默认使用的是3.8.1的Junit版本,但实际中我已经改过了pom.xml文件,使用的是4.11版本的Junit

这是依赖配置: 

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency> 
eclipse打开项目properties->libraries->maven dependencies 里查看,也是4.11版本的没错。

不过当我打开本地仓库查看junit包时,发现有3.8.1和4.11两个版本的包,此时可以删除4.11版本的包,删除3.8.1版本的包时却无法删除,警告文件已在另一个程序中打开!说明,虽然maven依赖中加入的是4.11版本的包,项目实际使用的是3.8.1版本的包,所以导致@RunWith(SpringJUnit4ClassRunner.class)这句话报错,有谁碰到类似情况或者有什么解决方案?help...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

琴流音 2021-12-04 15:47:50

那简单,把占用的进程关了,然后删了本地3的包所在的文件夹,回头重新跑一下项目,看看还会不会生成

丢了幸福的猪 2021-12-04 15:47:48

使用mvn
exclude

只为守护你 2021-12-04 15:47:40

回复
试了,配置4.11的版本,maven会下载3.8.1的和4.11两个版本的,但使用的是3.8.1

青萝楚歌 2021-12-04 15:47:39

回复
如果是这种现象就很有可能别的依赖包有引用junit3.8.1版本,仔细找找. 并确保pom.xml的修改已经生效. 如果在本地库无法删除3.8.1版本包,说明你的程序没有完全停掉,这时就有可能你新改的pom.xml没有生效,所以确保全部停掉后重新编译试试.

狠疯拽 2021-12-04 15:47:28

回复
http://blog.csdn.net/xyr05288/article/details/51438500

傾城如夢未必闌珊 2021-12-04 15:46:43

回复
谢谢你!

终遇你 2021-12-04 15:43:17

回复
不客气

夜无邪 2021-12-04 15:43:07

是用的maven-surefire-plugin插件吗?

默认junit版本确实是3.8.1,不过也可以声明junit版本号.如下:

if the JUnit version in the project >= 4.7 and the parallel attribute has ANY value
    use junit47 provider
if JUnit >= 4.0 is present
    use junit4 provider
else
    use junit3.8.1

所以,junit4.7以上版本声明为"junit47"就行了,否则就是默认的junit3.8.1

参考地址在此:http://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html

写得很清楚.

清晨说ぺ晚安 2021-12-04 15:36:54

可是没有地方引用junit3,而且build path 里面看jar包也只有junit4, QAQ

顾忌 2021-12-04 15:31:58

看哪里依赖的junit3,把他在maven 里面exclude掉

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文