@@ -76,7 +76,7 @@ public class SpringApplicationContextLoader extends AbstractContextLoader {
7676 private static final String LINE_SEPARATOR = System .getProperty ("line.separator" );
7777
7878 @ Override
79- public ApplicationContext loadContext (MergedContextConfiguration config )
79+ public ApplicationContext loadContext (final MergedContextConfiguration config )
8080 throws Exception {
8181 assertValidAnnotations (config .getTestClass ());
8282 SpringApplication application = getSpringApplication ();
@@ -98,8 +98,6 @@ public ApplicationContext loadContext(MergedContextConfiguration config)
9898 }
9999 application .setInitializers (initializers );
100100 ConfigurableApplicationContext applicationContext = application .run ();
101- TestPropertySourceUtils .addPropertiesFilesToEnvironment (applicationContext ,
102- config .getPropertySourceLocations ());
103101 return applicationContext ;
104102 }
105103
@@ -116,7 +114,7 @@ private void assertValidAnnotations(Class<?> testClass) {
116114
117115 /**
118116 * Builds new {@link org.springframework.boot.SpringApplication} instance. You can
119- * override this method to add custom behaviour
117+ * override this method to add custom behavior
120118 * @return {@link org.springframework.boot.SpringApplication} instance
121119 */
122120 protected SpringApplication getSpringApplication () {
@@ -196,6 +194,8 @@ private void addProperties(ConfigurableEnvironment environment,
196194 private List <ApplicationContextInitializer <?>> getInitializers (
197195 MergedContextConfiguration mergedConfig , SpringApplication application ) {
198196 List <ApplicationContextInitializer <?>> initializers = new ArrayList <ApplicationContextInitializer <?>>();
197+ initializers .add (new PropertySourceLocationsInitializer (mergedConfig
198+ .getPropertySourceLocations ()));
199199 initializers .add (new ServerPortInfoApplicationContextInitializer ());
200200 initializers .addAll (application .getInitializers ());
201201 for (Class <? extends ApplicationContextInitializer <?>> initializerClass : mergedConfig
@@ -273,4 +273,24 @@ private static boolean isIntegrationTest(Class<?> testClass) {
273273 .findAnnotation (testClass , WebIntegrationTest .class ) != null ));
274274 }
275275
276+ /**
277+ * {@link ApplicationContextInitializer} to setup test property source locations.
278+ */
279+ private static class PropertySourceLocationsInitializer implements
280+ ApplicationContextInitializer <ConfigurableApplicationContext > {
281+
282+ private final String [] propertySourceLocations ;
283+
284+ public PropertySourceLocationsInitializer (String [] propertySourceLocations ) {
285+ this .propertySourceLocations = propertySourceLocations ;
286+ }
287+
288+ @ Override
289+ public void initialize (ConfigurableApplicationContext applicationContext ) {
290+ TestPropertySourceUtils .addPropertiesFilesToEnvironment (applicationContext ,
291+ this .propertySourceLocations );
292+ }
293+
294+ }
295+
276296}
0 commit comments