Switch of the banner when SpringBootTest runs an app with a parent

Closes gh-33079
This commit is contained in:
Andy Wilkinson 2022-11-18 15:40:50 +00:00
parent acb5491b79
commit 0c8ae65bd4
2 changed files with 12 additions and 2 deletions

View File

@ -23,6 +23,7 @@ import java.util.List;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.ApplicationContextFactory;
import org.springframework.boot.Banner.Mode;
import org.springframework.boot.DefaultPropertiesPropertySource;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
@ -129,6 +130,9 @@ public class SpringBootContextLoader extends AbstractContextLoader {
}
return ApplicationContextFactory.DEFAULT.create(type);
});
if (config.getParent() != null) {
application.setBannerMode(Mode.OFF);
}
application.setInitializers(initializers);
boolean customEnvironent = ReflectionUtils.findMethod(getClass(), "getEnvironment")
.getDeclaringClass() != SpringBootContextLoader.class;

View File

@ -17,14 +17,19 @@
package org.springframework.boot.test.context;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTestContextHierarchyTests.ChildConfiguration;
import org.springframework.boot.test.context.SpringBootTestContextHierarchyTests.ParentConfiguration;
import org.springframework.boot.test.system.CapturedOutput;
import org.springframework.boot.test.system.OutputCaptureExtension;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.ContextHierarchy;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link SpringBootTest @SpringBootTest} and
* {@link ContextHierarchy @ContextHierarchy}.
@ -34,11 +39,12 @@ import org.springframework.test.context.ContextHierarchy;
@SpringBootTest
@ContextHierarchy({ @ContextConfiguration(classes = ParentConfiguration.class),
@ContextConfiguration(classes = ChildConfiguration.class) })
@ExtendWith(OutputCaptureExtension.class)
class SpringBootTestContextHierarchyTests {
@Test
void contextLoads() {
void contextLoads(CapturedOutput capturedOutput) {
assertThat(capturedOutput).containsOnlyOnce(":: Spring Boot ::");
}
@Configuration(proxyBeanMethods = false)