org.junit不存在(已引入包)

2019-03-14  本文已影响0人  李昂的数字之旅

问题现象

使用Junit4.12写单测的时候,通过IDEA运行单测用例,错误:提示包org.junit不存在。代码也没标红,点击可以跳转到类定义。

定位

通过mvn denpendency:tree查看junit4.12已经引入,scope=test
通过mvn clean test命令方式运行,也是正常。
是idea出了问题

寻找原因

重启IDEA,发现Assert类标红,通过alt+enter进行操作提示,提示需要引入junit包。
确认引入junit包,查看当前A模块的pom.xml没有,查找发现junit被引入到了另一个B模块的pom.xml里。
想起来,开始的时候,有把单测文件从A挪到B过。
查看B模块下的B.iml文件

B模块.iml文件
<sourceFolder url="file://$MODULE_DIR$/../A/src/test/java" isTestSource="true" />

发现问题,B模块里的TestSource目录怎么指向A的地址。
所以,虽然单测文件和junit都是在A模块,但是通过IDEA执行单测用例时,是在B模块下执行。因为单测用例所在目录,是B模块的TestSource目录,自然在B模块也找不到junit包。

解决方法,删除模块A/B的iml文件,重新执行maven.reimport,重新生成iml文件,一切恢复正常。

上一篇 下一篇

猜你喜欢

热点阅读