Support custom properties file formats in @TestPropertySource
Spring Framework 4.3 introduced the `PropertySourceFactory` SPI for use
with `@PropertySource` on `@Configuration` classes; however, prior to
this commit there was no mechanism to support custom properties file
formats in `@TestPropertySource` for integration tests.
This commit introduces support for configuring a custom
`PropertySourceFactory` via a new `factory` attribute in
`@TestPropertySource` in order to support custom file formats such as
JSON, YAML, etc.
For example, if you create a YamlPropertySourceFactory, you can use it
in integration tests as follows.
@SpringJUnitConfig
@TestPropertySource(locations = "/test.yaml", factory = YamlPropertySourceFactory.class)
class MyTestClass { /* ... /* }
If a custom factory is not specified, traditional `*.properties` and
`*.xml` based `java.util.Properties` file formats are supported, which
was the existing behavior.
Closes gh-30981
This commit is contained in:
@@ -85,6 +85,7 @@ dependencies {
|
||||
testRuntimeOnly("org.junit.vintage:junit-vintage-engine") {
|
||||
exclude group: "junit", module: "junit"
|
||||
}
|
||||
testRuntimeOnly("org.yaml:snakeyaml")
|
||||
}
|
||||
|
||||
// Prevent xml-apis from being used so that the corresponding XML APIs from
|
||||
|
||||
Reference in New Issue
Block a user