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

Zain丶酱 发布于 2016/07/29 11:44
阅读 1K+
收藏 0

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...

加载中
0
哎码
哎码
看哪里依赖的junit3,把他在maven 里面exclude掉
Zain丶酱
Zain丶酱
可是没有地方引用junit3,而且build path 里面看jar包也只有junit4, QAQ
0
LarrySu
LarrySu

是用的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

写得很清楚.


LarrySu
LarrySu
回复 @Zain丶酱 : 不客气
Zain丶酱
Zain丶酱
回复 @LarrySu : 谢谢你!
LarrySu
LarrySu
回复 @Zain丶酱 : http://blog.csdn.net/xyr05288/article/details/51438500
LarrySu
LarrySu
回复 @Zain丶酱 : 如果是这种现象就很有可能别的依赖包有引用junit3.8.1版本,仔细找找. 并确保pom.xml的修改已经生效. 如果在本地库无法删除3.8.1版本包,说明你的程序没有完全停掉,这时就有可能你新改的pom.xml没有生效,所以确保全部停掉后重新编译试试.
Zain丶酱
Zain丶酱
回复 @LarrySu : 试了,配置4.11的版本,maven会下载3.8.1的和4.11两个版本的,但使用的是3.8.1
下一页
0
haoran_10
haoran_10
使用mvn exclude
0
哎码
哎码
那简单,把占用的进程关了,然后删了本地3的包所在的文件夹,回头重新跑一下项目,看看还会不会生成
返回顶部
顶部