web-dev-qa-db-fra.com

Spring Boot: comment configurer les données de test avec liquibase en test unitaire

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
13
René Winkler

il y a une propriété spring.liquibase.dropFirst config, est-ce que c'est ce que vous recherchez? 

2
MemLeak

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. 

0
user1567291