我的Spring Boot 1.5.17(Spring 4.3.20)服务器可以在bootRun或部署时正常工作。
但是,我有一个Oracle DataSource,它仅在单元测试时会失败 :
java.lang.AssertionError:服务器正在发送非null重播上下文 但是我们的replayModes = []
针对此错误的Google搜索没有确切结果。
我能够使用其他Oracle数据库进行单元测试。
在完整的应用程序测试上下文中我得到了错误
@RunWith(SpringRunner.class)
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = { TestingUserConfiguration.class, Application.class }
)
以及单个DataSource配置和服务
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {
MyDbConfig.class,
MyService.class
})
oracle.jdbc.pool.OracleDataSource
和oracle.jdbc.replay.OracleConnectionPoolDataSourceImpl
都有错误。
UCP没有影响。
OracleConnectionPoolDataSourceImpl
有一个不同的错误:
java.sql.SQLException:不支持的功能
尝试从OJDBC 12.2升级到2018.3,没有区别。
有人以前见过此错误吗? 为什么只在Spring单元测试中出现?
答案 0 :(得分:1)
经过长时间的抓挠,我发现可以在测试套件中进行此操作:
static {
ClassLoader.getSystemClassLoader().setPackageAssertionStatus("oracle.jdbc.driver", false);
}
解决了我的问题,我确定这是oracle.jdbc.driver.T4CTTIfun类中的错误
答案 1 :(得分:0)
您可以在您的JAVA_TOOL_OPTIONS中添加“ -da:oracle ...”以关闭oracle断言。为了解决这个问题。
T达