一部のテストでは、データベーススキーマと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
spring.liquibase.dropFirst
configプロパティ、これはあなたが検索したものでしょうか?
これがあなたの質問に完全に答えるかどうかはわかりません。別のプロパティliquibase.default-schema = schemaNameToCreateがあります
しかし、それでも、スキーマを最初から作成することはできませんでした。