gpt4 book ai didi

java - 如何防止 Spring Boot Batch 应用程序在执行测试时运行?

转载 作者:行者123 更新时间:2023-12-01 16:25:20 24 4
gpt4 key购买 nike

我有一个 Spring Boot Batch 应用程序,正在针对它编写集成测试。当我执行测试时,整个批处理应用程序都会运行。如何只执行被测试的应用程序代码?

这是我的测试代码。当它执行时,整个批处理作业步骤都会运行(读取器、处理器和写入器)。然后,测试运行。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = BatchApplication.class))
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
StepScopeTestExecutionListener.class })
public class StepScopeTestExecutionListenerIntegrationTests {

@Autowired
private FlatFileItemReader<String> reader;

@Rule
public TemporaryFolder testFolder = new TemporaryFolder();

public StepExecution getStepExection() {
StepExecution execution = MetaDataInstanceFactory.createStepExecution();
return execution;
}

@Test
public void testGoodData() throws Exception {
//some test code on one met
File testFile = testFolder.newFile();

PrintWriter writer = new PrintWriter(testFile, "UTF-8");
writer.println("test");
writer.close();
reader.setResource(new FileSystemResource(testFile));
reader.open(getStepExection().getExecutionContext());
String test = reader.read();
reader.close();
assertThat("test", equalTo(test));
}
}

最佳答案

尝试在测试资源(例如 src/main/resources)中创建具有以下内容的 application.properties 文件:

spring.batch.job.enabled=false

您需要确保集成测试读取。为此,您可能需要这样使用 ConfigFileApplicationContextInitializer:

@SpringApplicationConfiguration(classes = TestApplication.class, 
initializers = ConfigFileApplicationContextInitializer.class)

关于java - 如何防止 Spring Boot Batch 应用程序在执行测试时运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62159758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com