使用@Profile决定执行测试类

时间:2018-11-15 06:17:19

标签: java spring spring-boot spring-test spring-profiles

根据https://stackoverflow.com/a/33042872/4106030 我们不应使用@Profile来让spring概要文件决定是应执行还是忽略测试类中的所有测试。

有记载:

  

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

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

1 个答案:

答案 0 :(得分:0)

这是真的,因为@Profile影响Spring组件并且未连接到测试框架。

尽管如此,您仍可以具有测试配置文件,该配置文件将在运行测试时加载Spring组件(作为配置类)

带有配置文件的Test类的示例:

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