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;
}