Spring boot springboottest如何防止应用程序运行
我有一个运行Spring批处理ETL的标准应用程序类:Spring boot springboottest如何防止应用程序运行,spring-boot,springjunit4classrunner,Spring Boot,Springjunit4classrunner,我有一个运行Spring批处理ETL的标准应用程序类: @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 我的Junit测试执行以下操作: @RunWith(SpringJUnit4ClassRunner.class) @Spri
@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,然后执行测试。如何防止应用程序运行?我认为有很多替代方案,这取决于您试图实现的目标 其中一个选项是使用特定的配置文件运行测试,比如
测试
,并根据某些属性或特定的配置文件配置ETL(我假设它们只是作业)
例如:
测试类
@ActiveProfiles("testing")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {
...
}
@Component
@Profile("!testing")
public class JobEtlService {
}
作业/ETL类
@ActiveProfiles("testing")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest {
...
}
@Component
@Profile("!testing")
public class JobEtlService {
}
希望能有帮助