J'essaie de configurer le schéma de base de données et certaines données de test avec liquibase pour certains tests. Chaque test a un journal des modifications distinct qui établit le schéma et des données spécifiques pour le test.
Afin de faire fonctionner mes tests, je dois supprimer le schéma avant chaque test et le remplir avec de nouvelles données de test. Cependant, il semble que cela ne fonctionne pas car certains tests échouent car les anciennes données de test sont toujours disponibles. Je pense que quelque chose avec ma configuration n'est pas correct. Comment puis-je forcer liquibase à abandonner le schéma avant chaque test?
Mes tests ressemblent à ce qui suit:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyTestConfig.class)
@TestPropertySource(properties = "liquibase.change-log=classpath:changelog/schema-with-testdata.xml")
public class MyRepositoryTest {
La configuration pour les tests se présente comme suit:
@SpringApplicationConfiguration
@Configuration
@EnableAutoConfiguration
@ComponentScan("com.mypackage")
@EntityScan(basePackages = { "com.mypackage.domain" })
@EnableJpaRepositories(basePackages = { "com.mypackage.domain", "com.mypackage.infra.persistence" })
public class MyTestConfig {
Et le fichier application.properties sous src/main/test/resources est
liquibase.drop-first=true
spring.jpa.hibernate.ddl-auto=none
il y a une propriété spring.liquibase.dropFirst
config, est-ce que c'est ce que vous recherchez?
Je ne sais pas si cela répond complètement à votre question. Il existe une autre propriété liquibase.default-schema = schemaNameToCreate
Mais même avec cela, je n'ai jamais réussi à le faire pour créer le schéma à partir de zéro.