Je suis en train de configurer liquibase pour gérer ma base de données dans une nouvelle application de démarrage de printemps. J'ai besoin de la dépendance de liquibase dans mon classpath pour réinitialiser l'état de la base de données après l'exécution de certains tests d'intégration. Au cours de mes tests, je ne veux pas que la liquibase soit activée via la configuration automatique du ressort lors de l'initialisation du contexte d'application. J'ai essayé d'ajouter liquibase.enabled = false à application.properties, cependant lorsque je débogue la classe LiquibaseAutoConfiguration, il apparaît que enabled est toujours défini sur true. Je ne suis pas nouveau au printemps, mais je suis nouveau à la configuration automatique de spring-boot. Est-ce que quelqu'un a eu des problèmes avec le démarrage de printemps ne respectant pas les propriétés dans application.properties?Spring-boot ne respectant pas les propriétés de la liquibase
Ma configuration est assez minime:
extraits de code pertinents:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { SpringBootClass.class })
public class databaseTests{
@Before
public void setup() throws LiquibaseException, SQLException {
Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(dataSource.getConnection()));
Liquibase liquibase = new Liquibase("db/changelog/db.changelog-master.yaml", new FileSystemResourceAccessor("src/main/resources/"),database);
liquibase.dropAll();
liquibase.update("test");
}
..
}
@SpringBootApplication
@Import({ DataSourceConfig.class, HibernateConfig.class, OauthConfig.class })
@EnableConfigurationProperties
public class SpringBootClass {
..
}
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.6.RELEASE</version>
<!-- <liquibase.version>3.3.5</liquibase.version> -->
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<scope>test</scope>
</dependency>
Ceci est également une bonne solution, finalement parce que je n'ai pas besoin de démarrage au printemps pour ces tests j'ai fini par aller avec le ConfigFileAplicationContextInitializer dans ma réponse ci-dessus. Merci d'avoir pris le temps de répondre, j'accepterai le vôtre comme le bon – ctwomey1