关于maven下 使用Spring 集成Junit版本问题?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

爱吃鱼的程序员 2020-06-09 12:42:19 93

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

Java Maven Android开发 Spring
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-09 12:42:36

    看哪里依赖的junit3,把他在maven里面exclude掉可是没有地方引用junit3,而且buildpath里面看jar包也只有junit4,QAQ

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

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


    <preclass="brush:cpp;toolbar:true;auto-links:false;">iftheJUnitversionintheproject>=4.7andtheparallelattributehasANYvalueusejunit47providerifJUnit>=4.0ispresentusejunit4providerelseusejunit3.8.1



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


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

    写得很清楚.


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

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程