【发布时间】:2020-03-07 21:23:31
【问题描述】:
我想知道是否有办法根据活动配置文件不启动 Spring Boot 应用程序。原因是,我有两个配置文件:本地配置文件和集成配置文件。当配置文件在本地时,我会在本地启动应用程序。如果配置文件是集成的,我希望测试不启动应用程序,而只是使用我在配置类中设置的端点,以便它实际使用部署的 Spring Boot 应用程序。
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT
)
@ContextHierarchy({
@ContextConfiguration(
initializers = ConfigFileApplicationContextInitializer.class,
classes = TestConfiguration.class,
loader = SpringBootContextLoader.class
),
@ContextConfiguration(
initializers = ConfigFileApplicationContextInitializer.class,
classes = Application.class,
loader = SpringBootContextLoader.class
),
}
)
public class SpringContextConfiguration {
@Before
public void init(){}
}
【问题讨论】:
-
这样做没有任何意义。除非您正在进行验收测试,否则不应有“已部署的应用程序”。集成测试应该建立自己的测试环境,允许并行开发/测试。
-
不要。为此编写单独的测试,或者只是在启动测试之前在本地手动启动它(或让您的构建脚本执行此操作)。
标签: java spring spring-boot testing