@sql脚本在添加@testexecutionlisteners测试套件时不会为@test运行



我正在测试一个弹簧批处理项目制处人,该项目读取从db中获取值。

如测试阶梯式组件页面所建议的,我添加 @testexecutionListeners({disportencyInctiveTyTestexecutionListener.Class,stepscopetestectectecutionlistener.class.class})

@ContextConfiguration(locations = { "classpath:spring/context-configuration.xml" })
@TestExecutionListeners( { DependencyInjectionTestExecutionListener.class, StepScopeTestExecutionListener.class })
@RunWith(SpringJUnit4ClassRunner.class)
public class CustomItemProcessorTest 
{
    @Autowired
    private JobLauncherTestUtils jobLauncherTestUtils;
    @Autowired
    private ItemProcessor<InputClass, OutputClass> customItemProcessor;
    @Test
    @Sql(scripts = {"insertDataToBeRetrievedByCustomItemProcessor.sql" }, 
            config = @SqlConfig(dataSource = "dataSource"))
    public void assertThatCustomItemProcessorProcessorIsRetrievingStillBirthSasEtlObject() throws Exception 
    {
        OutputClass outputObject = customItemProcessor.process(inputClassObject);
    }
}

我遇到的问题是上述行: @testexecutionlisteners ... 正在阻止@sql(scriptss = ...命令执行。

CustomItemProcersor是轻松从数据库读取值。

为什么上述注释阻止@SQL脚本运行,我该如何解决?

使用注释 testexecutionListeners 时,您超越了默认配置要使您的SQL脚本执行,您需要添加此侦听器 sqlScriptStesteSecutionListener

@TestExecutionListeners( { 
  DependencyInjectionTestExecutionListener.class,
  StepScopeTestExecutionListener.class, 
  SqlScriptsTestExecutionListener 
})

最新更新