更新: 如Peter Davis所述,此问题已在Spring Boot 1.5.0中修复。
这是的限制
@SpringBootTest。准确移动,这是的限制
SpringBootContextLoader。您可以通过使用配置父上下文的自定义上下文加载器或
ContextCustomizer需要在中列出的工厂来解决此问题
spring.factories。这是后者的粗略示例:
src / test / resources / meta-INF / spring.factories:
org.springframework.test.context.ContextCustomizerFactory=com.alex.demo.ctx.HierarchyContextCustomizerFactory
src / test / java / com / alex / demo / ctx /
HierarchyContextCustomizerFactory.java:
package com.alex.demo.ctx;import java.util.List;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.test.context.ContextConfigurationAttributes;import org.springframework.test.context.ContextCustomizer;import org.springframework.test.context.ContextCustomizerFactory;import org.springframework.test.context.MergedContextConfiguration;public class HierarchyContextCustomizerFactory implements ContextCustomizerFactory { @Override public ContextCustomizer createContextCustomizer(Class<?> testClass, List<ContextConfigurationAttributes> configAttributes) { return new ContextCustomizer() { @Override public void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) { if (mergedConfig.getParentApplicationContext() != null) { context.setParent(mergedConfig.getParentApplicationContext()); } } }; }}


