springboottest如何防止运行应用程序
Posted
技术标签:
【中文标题】springboottest如何防止运行应用程序【英文标题】:springboottest how to prevent running application 【发布时间】:2018-11-11 00:34:06 【问题描述】:我有运行 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,然后执行测试。如何阻止应用程序运行?
【问题讨论】:
【参考方案1】:我认为有很多选择,这实际上取决于您要达到的目标。
其中一个选项是使用特定配置文件运行您的测试,例如 testing
,并配置您的 ETL(我假设它们只是作业)属性或特定配置文件。
例如:
测试类
@ActiveProfiles("testing")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyServiceTest
...
工作/ETL 课程
@Component
@Profile("!testing")
public class JobEtlService
希望对你有帮助。
【讨论】:
以上是关于springboottest如何防止运行应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何模拟@springboottest 的应用程序配置或上下文?
如何在@SpringBootTest 之前添加设置并且只运行一次?
如何为不同的应用程序运行相同的 SpringBootTests