2016-05-16 3 views

答えて

0

これで、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; 
} 
関連する問題