Spring boot @套件中的IntegrationTest属性不会重新加载

Spring boot @套件中的IntegrationTest属性不会重新加载,spring-boot,spring-test,Spring Boot,Spring Test,我在每个测试上都添加了一个@IntegrationTest注释,有时我使用它向环境添加属性。当同时运行所有测试时,似乎只使用第一个@IntegrationTest注释中遇到的属性,因此一些测试失败。有没有办法强制重新加载这些属性 以下是我的用法示例: @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes=TestApplication.class) @WebAppConfiguration

我在每个测试上都添加了一个
@IntegrationTest
注释,有时我使用它向环境添加属性。当同时运行所有测试时,似乎只使用第一个
@IntegrationTest
注释中遇到的属性,因此一些测试失败。有没有办法强制重新加载这些属性

以下是我的用法示例:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=TestApplication.class)
@WebAppConfiguration
@IntegrationTest("some.property=true")
public class SomeIntegrationTest {

根据API文档@IntegrationTest注释是

如果要使用可重新加载的属性,则应使用

例如


根据API文档@IntegrationTest注释是

如果要使用可重新加载的属性,则应使用

例如


测试中的Spring引导应用程序在所有测试中只启动一次,这对于测试性能来说是一件好事。如果要使用不同的属性集启动另一个应用程序,则必须编写另一个Spring Boot应用程序类,如下所示:

@Configuration
@EnableAutoConfiguration
public class MetricsTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(MetricsTestApplication.class, args);
    }

}
在集成测试中,您引用了另一个类。此外,您必须设置与第一个应用程序不同的端口,并且可以添加不同于第一个应用程序属性的属性:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=MetricsTestApplication.class)
@WebAppConfiguration
@IntegrationTest({"server.port=8091","batch.metrics.enabled=true"})

具有不同属性集的MetricsTestApplication现在在端口8091下启动。

正在测试的Spring引导应用程序在所有测试中只启动一次,这对于测试性能是一件好事。如果要使用不同的属性集启动另一个应用程序,则必须编写另一个Spring Boot应用程序类,如下所示:

@Configuration
@EnableAutoConfiguration
public class MetricsTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(MetricsTestApplication.class, args);
    }

}
在集成测试中,您引用了另一个类。此外,您必须设置与第一个应用程序不同的端口,并且可以添加不同于第一个应用程序属性的属性:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=MetricsTestApplication.class)
@WebAppConfiguration
@IntegrationTest({"server.port=8091","batch.metrics.enabled=true"})

具有不同属性集的MetricsTestApplication现在在端口8091下启动。

以上是整个解决方案吗?我试图添加这个,但它似乎根本没有添加属性。是否有一个类级别的注释可以让它运行?@Istvan EnvironmentTestUtils.AddenEnvironment已在Boot 2.2中删除,您知道该使用什么吗?以上是整个解决方案吗?我试图添加这个,但它似乎根本没有添加属性。是否有一个类级注释可以运行此功能?@Istvan Environment TestUtils.AddenEnvironment已在Boot 2.2中删除,是否知道使用什么替代?如何确定使用了哪些
@IntegrationTest
属性,即首先加载哪个测试类?如何确定使用了哪个
@IntegrationTest
属性,即首先加载哪个测试类?