我正试图为春季批处理应用程序编写集成测试,在我的项目中有大约10+个工作我想只运行一个作业,但无法实现任何建议。
@SpringBatchTest
@RunWith(SpringRunner.class)
@ContextConfiguration(classes= MyApp.class)
@SpringBootTest
@Slf4j
public class JobATest {
JobLauncherTestUtils jobLauncherTestUtils = new JobLauncherTestUtils();
@Autowired
@Qualifier(JOB_A)
Job joba;
@Before
public void setUp() throws Exception {
log.debug("CAME HERE setUp {} ",joba.getName());
jobLauncherTestUtils.setJob(joba);
}
@After
public void tearDown() throws Exception {
}
@Test
public void processAJob() throws Exception {
jobLauncherTestUtils.launchJob();
}
}
误差
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'jobLauncherTestUtils': Unsatisfied dependency expressed
through method 'setJob' parameter 0; nested exception is
org.springframework.beans.factory.NoUniqueBeanDefinitionException:
No qualifying bean of type 'org.springframework.batch.core.Job' available:
expected single matching bean but found 2: **joba,jobb**
当使用@SpringBatchTest
时,期望测试上下文包含单个作业bean。在注释的javadoc中提到了这一点。
有一个开放的问题,我们可能会考虑下一个主要版本。如果您有改进的建议,请投票或添加评论。我还邀请您使用@SpringBatchTest检查多作业单元测试上的线程,这也可以帮助您。