Ensure that webEnvironment=NONE creates non-web context
Previously, if spring.main.web-application-type was configured in application.properties to servlet or reactive, setting webEnvironment=NONE on @SpringBootTest would not work correctly and a servlet or reactive web application context would be created based on the value of spring.main.web-application-type. This commit updates the test context bootstapper to set spring.main.web-application-type to none when webEnvironment has been set to none. This is done in the merged context configuration's property source properties which are applied to the environment in a high-precedence test property source that will override configuration in application.properties. Closes gh-29695
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -293,9 +293,13 @@ public class SpringBootTestContextBootstrapper extends DefaultTestContextBootstr
|
||||
// precedence
|
||||
propertySourceProperties.addAll(0, Arrays.asList(properties));
|
||||
}
|
||||
if (getWebEnvironment(testClass) == WebEnvironment.RANDOM_PORT) {
|
||||
WebEnvironment webEnvironment = getWebEnvironment(testClass);
|
||||
if (webEnvironment == WebEnvironment.RANDOM_PORT) {
|
||||
propertySourceProperties.add("server.port=0");
|
||||
}
|
||||
else if (webEnvironment == WebEnvironment.NONE) {
|
||||
propertySourceProperties.add("spring.main.web-application-type=none");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user