@@ -76,7 +76,7 @@ public class SpringApplicationContextLoader extends AbstractContextLoader {
76
76
private static final String LINE_SEPARATOR = System .getProperty ("line.separator" );
77
77
78
78
@ Override
79
- public ApplicationContext loadContext (MergedContextConfiguration config )
79
+ public ApplicationContext loadContext (final MergedContextConfiguration config )
80
80
throws Exception {
81
81
assertValidAnnotations (config .getTestClass ());
82
82
SpringApplication application = getSpringApplication ();
@@ -98,8 +98,6 @@ public ApplicationContext loadContext(MergedContextConfiguration config)
98
98
}
99
99
application .setInitializers (initializers );
100
100
ConfigurableApplicationContext applicationContext = application .run ();
101
- TestPropertySourceUtils .addPropertiesFilesToEnvironment (applicationContext ,
102
- config .getPropertySourceLocations ());
103
101
return applicationContext ;
104
102
}
105
103
@@ -116,7 +114,7 @@ private void assertValidAnnotations(Class<?> testClass) {
116
114
117
115
/**
118
116
* 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
120
118
* @return {@link org.springframework.boot.SpringApplication} instance
121
119
*/
122
120
protected SpringApplication getSpringApplication () {
@@ -196,6 +194,8 @@ private void addProperties(ConfigurableEnvironment environment,
196
194
private List <ApplicationContextInitializer <?>> getInitializers (
197
195
MergedContextConfiguration mergedConfig , SpringApplication application ) {
198
196
List <ApplicationContextInitializer <?>> initializers = new ArrayList <ApplicationContextInitializer <?>>();
197
+ initializers .add (new PropertySourceLocationsInitializer (mergedConfig
198
+ .getPropertySourceLocations ()));
199
199
initializers .add (new ServerPortInfoApplicationContextInitializer ());
200
200
initializers .addAll (application .getInitializers ());
201
201
for (Class <? extends ApplicationContextInitializer <?>> initializerClass : mergedConfig
@@ -273,4 +273,24 @@ private static boolean isIntegrationTest(Class<?> testClass) {
273
273
.findAnnotation (testClass , WebIntegrationTest .class ) != null ));
274
274
}
275
275
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
+
276
296
}
0 commit comments