Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot springboottest如何防止应用程序运行_Spring Boot_Springjunit4classrunner - Fatal编程技术网

Spring boot springboottest如何防止应用程序运行

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

我有一个运行Spring批处理ETL的标准应用程序类:

@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 {
}
希望能有帮助