当前使用版本(必须填写清楚,否则不予处理)

id 'org.springframework.boot' version '2.2.1.RELEASE'
compile "com.baomidou:mybatis-plus-boot-starter:3.2.0"

该问题是怎么引起的?(最新版上已修复的会直接close掉)

Use @SpyBean in any Sprint Boot Integergration test add autoResultMap = true in annotation like @TableName(value = "distributed_locks", autoResultMap = true)

重现步骤

Run ./gradlew test A weird thing is that if you run the tests in Intellj, It works fine, but if you use gradle, it will crash

报错信息

Caused by: java.lang.IllegalArgumentException: org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.example.demo.mappers.DistributedLockMapper.mybatis-plus_DistributedLockDO' referenced from 'com.example.demo.mappers.DistributedLockMapper.selectById' at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:83) at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799) ... 116 more Caused by: org.apache.ibatis.builder.IncompleteElementException: Could not find result map 'com.example.demo.mappers.DistributedLockMapper.mybatis-plus_DistributedLockDO' referenced from 'com.example.demo.mappers.DistributedLockMapper.selectById' at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:341) at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:285) at com.baomidou.mybatisplus.core.injector.AbstractMethod.addMappedStatement(AbstractMethod.java:314) at com.baomidou.mybatisplus.core.injector.AbstractMethod.addSelectMappedStatementForTable(AbstractMethod.java:253) at com.baomidou.mybatisplus.core.injector.methods.SelectById.injectMappedStatement(SelectById.java:40) at com.baomidou.mybatisplus.core.injector.AbstractMethod.inject(AbstractMethod.java:63) at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.lambda$inspectInject$0(AbstractSqlInjector.java:55) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at com.baomidou.mybatisplus.core.injector.AbstractSqlInjector.inspectInject(AbstractSqlInjector.java:55) at com.baomidou.mybatisplus.core.MybatisMapperAnnotationBuilder.parse(MybatisMapperAnnotationBuilder.java:122) at com.baomidou.mybatisplus.core.MybatisMapperRegistry.addMapper(MybatisMapperRegistry.java:82) at com.baomidou.mybatisplus.core.MybatisConfiguration.addMapper(MybatisConfiguration.java:104) at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:80) ... 119 more Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.example.demo.mappers.DistributedLockMapper.mybatis-plus_DistributedLockDO at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:964) at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:674) at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:339)

Comment From: FLXT-Qi

Update:

add attribute forkEvery into gradle config and won't fail, just wondering why

test { forkEvery = 4 maxParallelForks = 32 environment "SPRING_PROFILES_ACTIVE", "test" useJUnitPlatform() }