IDEA中单元测试失效的问题

最近在使用IDEA2018.3.5这个版本进行单元测试的时候,写了个异常竟然单元测试通过了,而且也没有打印日志。现象就是直接出现绿条,速度很快,即使运行很复杂的单元测试也会立即运行结束出现绿条,而且没有任何日志,单元测试失效。第一时间认为是日志配置存在问题导致即使现错也没有捕获到,但是用Eclipse跑同样错误的单元测试是会正常报错的,所以排除这个日志的问题。网上搜了很多解决方法都不适用,最终发现解决方法,但是原因不明,在这里记录下供之后出现类似问题的朋友一个参考

对了,这里说下我之前还认为是项目结构的的问题,因为这个项目是一个老项目,之前是用Eclipse开发的,我用IDEA也怀疑过这个问题,但是作为一个Maven项目不应该存在这种问题呀。后来我用IDEA2018.3.5这个版本新创建了个项目,也出现类似的问题,随即排除项目结构的原因

最后发现是因为项目引入JMockitJUnit顺序出现问题,最初POM配置的是JMockit在JUnit上方,后来将JMockit在JUnit下方引入得以解决,为什么将JMockitJunit后面引入就可以解决?是因为版本不兼容?又为什么在Eclipse中不需要任何修改就可以正确运行,是因为IDE的问题?这些问题都不得而知,有看到并知道原因的朋友可以回复下解决我的疑惑

原POM配置

<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.32</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

修改后的POM

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.32</version>
    <scope>test</scope>
</dependency>

或者不修改POM,在IDEA Project Structure->Modules->Dependencies 中将JUnit移动到JMockit上方

网上有的朋友说将JMockit必须放在JUnit前面引入才不会影响Mock接口功能,经过测试即使在下方引入也没有影响Mock接口

后记:后来我在自己电脑上测试,本地安装的是IDEA 2018.3.6,无论JMockitJunit的顺序如何(相同的版本),单元测试都是正常的。因为出现问题的这个项目不方便拷回研究,所以这个问题也就此作罢,这里只是提供一个解决方案,以供遇到同样问题的朋友进行参考

猜你喜欢

转载自www.cnblogs.com/lz2017/p/13167965.html
今日推荐