1
スプリングテストでは、@ConditionalOnProperty
注釈を使用して、Springブート自動構成ファクトリの2つの実装の間で条件付きで選択できる環境プロパティを設定していますか?テストコンテキストを示すSpringテスト環境プロパティ
スプリングテストでは、@ConditionalOnProperty
注釈を使用して、Springブート自動構成ファクトリの2つの実装の間で条件付きで選択できる環境プロパティを設定していますか?テストコンテキストを示すSpringテスト環境プロパティ
これで、Springテストドライバが設定されている可能性があります。しかし、私はSpring Profileのサポートを通じて、私のユースケースを達成するためのきれいな方法を見つけました。
以下は、testng
フレームワークの概要です。私はDataSource beanの条件付きワイヤアップの概要を説明します。統合のために、組み込みのmysqlインスタンスを作成します。 (将来的に統合テストマネージドドッカーの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;
}