web-dev-qa-db-ja.com

Spring Boot:ユニットテストでliquibaseを使用してテストデータをセットアップする方法

一部のテストでは、データベーススキーマとliquibaseを使用していくつかのテストデータをセットアップしようとしています。各テストには、テストのスキーマと特定のデータを設定する個別の変更ログがあります。

テストを機能させるために、各テストの前にスキーマを削除し、新しいテストデータを入力する必要があります。ただし、古いテストデータがまだ利用可能であるために一部のテストが失敗したため、これは機能していないようです。私の設定の何かが正しくないと思います。各テストの前にliquibaseでスキーマを強制的に削除するにはどうすればよいですか?

私のテストは次のようになります:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyTestConfig.class)
@TestPropertySource(properties = "liquibase.change-log=classpath:changelog/schema-with-testdata.xml")
public class MyRepositoryTest {

テストの構成は次のようになります。

@SpringApplicationConfiguration
@Configuration
@EnableAutoConfiguration
@ComponentScan("com.mypackage")
@EntityScan(basePackages = { "com.mypackage.domain" })
@EnableJpaRepositories(basePackages = { "com.mypackage.domain", "com.mypackage.infra.persistence" })
public class MyTestConfig {

そして、src/main/test/resourcesの下のapplication.propertiesは

liquibase.drop-first=true
spring.jpa.hibernate.ddl-auto=none
19
René Winkler

spring.liquibase.dropFirst configプロパティ、これはあなたが検索したものでしょうか?

3
MemLeak

これがあなたの質問に完全に答えるかどうかはわかりません。別のプロパティliquibase.default-schema = schemaNameToCreateがあります

しかし、それでも、スキーマを最初から作成することはできませんでした。

0
user1567291