一尘不染

使用@Profile决定执行测试类

spring-boot

我们不应使用@Profilespring概要文件来确定是应执行还是忽略测试类中的所有测试。

声明:

@Profile如果在Spring
Environment中针对ApplicationContext的一个已命名bean定义配置文件之一处于活动状态,则使用来选择性地启用组件(例如,@Service等),@Configuration类或@Bean方法。此注释与测试没有直接关系:
@Profile 不应在测试类上使用

这是真的?如果是,那为什么呢?


阅读 224

收藏
2020-05-30

共1个答案

一尘不染

的确如此,因为会@Profile影响Spring组件并且未连接到Test框架。

不过,您可以拥有测试配置文件,该配置文件将在运行测试时加载Spring组件(作为配置类)

带配置文件的Test类示例:

// load related configuration classes
@ContextConfiguration(classes = { TestConfiguration.class }) 
@ActiveProfiles(profiles = { "testing" })
public class MyTest extends AbstractTestNGSpringContextTests {
2020-05-30