零、问题
项目(基于Spring Cloud)在正常启动的情况下是没问题的,但是一运行单元测试就报 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
一般来说这是没有找到Mapper.xml文件导致的,但是很奇怪,只有在单元测试的时候才会出现这个问题。
一、解析
经过排查发现,项目中为了图方便,把常用的配置写在了一个properties里,其中有一段:
mybatis.mapper-locations=classpath*:tech/xunyi/cloud/*/dao/mapper/*Mapper.xml
这样写,在正常启动时不会有什么问题,但是在单元测试的时候就会找不到配置文件
二、解决方案
因为我的配置文件,是存在git上面,通过Config Server获取的,所以需要在对应的配置文件中加入具体的Mybatis配置文件路径,比如:
mybatis.mapper-locations=classpath*:tech/xunyi/cloud/sign/dao/mapper/*Mapper.xml
到此,问题解决,单元测试中可以调用到数据库了