我有运行Spring批处理ETL的标准Application类:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我的Junit测试做了类似的事情:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {
@Autowired
MyService myService;
@Test
public void testInsertions() {
//do stuff with assertions
}
}
我的问题是,当我执行junit测试时,应用程序也会启动ETL然后执行测试。如何防止应用程序运行?
答案 0 :(得分:0)
我认为有很多选择,这实际上取决于你想要实现的目标。
其中一个选项是使用特定的配置文件运行测试,例如testing
,并配置您的ETL (我假设它们只是工作)是根据某些属性或特定配置文件进行配置。
例如:
测试类
@ActiveProfiles("testing")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {
...
}
工作/ ETL课程
@Component
@Profile("!testing")
public class JobEtlService {
}
希望它有所帮助。