1
春季測試是否設置了一些環境屬性,我可以使用@ConditionalOnProperty
註釋來有條件地選擇Spring Boot自動配置工廠的兩個實現?指示測試環境的彈簧測試環境屬性
春季測試是否設置了一些環境屬性,我可以使用@ConditionalOnProperty
註釋來有條件地選擇Spring Boot自動配置工廠的兩個實現?指示測試環境的彈簧測試環境屬性
好吧,所以可能有一個屬性,春季測試驅動程序設置。不過,我已經找到了一種通過Spring Profile支持實現我的用例的巧妙方法。
下面的大綱是針對testng
框架。我概述了DataSource bean的條件連接 - 對於集成,我創建了一個嵌入式mysql實例。 (將來由集成測試管理的docker mysql實例替換)。
步驟1:所有的集成測試應使集成資料:
// Create a TestNG Base class for integration testing.
@Test(groups = "Integration")
@ActiveProfiles("Integration")
public abstract class PayliquidAbstractTestNGIntegrationTest extends AbstractTestNGSpringContextTests {
}
// Use the base class as follows, Leave the @SpringApplicationConfiguration on The test classes as each starter module should confine the create application context to it's configuration hierarchy.
@SpringApplicationConfiguration(TestApplication.class)
public class SomeDaoIntegrationTest extends PayliquidAbstractTestNGIntegrationTest {
//...
}
步驟2:
@Bean(name = "primaryDataSource")
@Primary
@Profile("Integration")
public DataSource primaryIntegrationDatasource() {
return JdbcClients.getIntegrationDatasource();
}
步驟3::豆可以是依賴於輪廓豆可以有條件進行佈線根據配置文件排除:
@Bean
@Primary
@Profile("!Integration")
public DataSource primaryDataSource() {
HikariDataSource hks = new HikariDataSource(datasourceConfig);
logger.info("HikariCP MinimumIdle={}", hks.getMinimumIdle());
logger.info("HikariCP MaxPoolSize={}", hks.getMaximumPoolSize());
return hks;
}