surefire搞测试用例-eclipse通过 mvn 命令行执行失败

在使用Jmockit进行测试时,遇到一个问题,即测试用例在Eclipse中运行正常,但通过Maven的mvn命令行执行时失败,报错为MissingInvocation。问题根源在于Maven的surefire插件配置,特别是reuseForks和forkCount的设置。经过调整,如将reuseForks设为true,forkCount设为1或大于1的合理值,可以解决测试执行两次及测试结果不一致的问题。同时,使用Mockito没有出现此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前用了不少Jmockit写用例,多数还好,但是之前出现了一些问题,主要的问题是一些用例,使用eclipse运行是ok的,但是用mvn命令进行测试却无法通过,错误的大致信息如下:

mockit.internal.expectations.invocation.MissingInvocation: 
Missing 1 invocation to:
com.xxx.RegionService#getByRegionId(0)
   on mock instance: com.xxx.RegionService.$Impl_RegionService@45430a27
	at com.xxx.core.xxx.SomeTest.testXXX(SomeTest.java:38)

是一个MissingInvocation,意思很简单,就是本来应该有一次调用,但实际上没有执行。信息不难理解,麻烦的是2种环境的测试结果不一致。方法的声明是这样的:

Region getByRegionId(Integer regionId);

我的测试代码时这样写的:

new Expectations(){
            {
            	
            	regionService.getByRegionId(3);
            	times = 1;
            	result = new RegionDTO(3,"县名称");
            }
        };

场景是这样的:regionService是个外部的dubbo服务,CUT里面,我需要根据地区的ID获取地区名称,会调用regionService.getByRegionId。 我在测试的时候使用Expectations来mock了getByRegionId的返回值。很简单的测试,但是测试结果在mvn命令行运行的时候始终无法执行通过。网上搜索了半天没什么结果。在之前我都用Mockito的mo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值