Jhipster测试中液化酶的使用
我想在Jhipster应用程序中使用LiquiBase在每次测试后重新填充数据库。我是如何设置Junit测试的 我发现最初LiquiBase是通过以下方式在应用程序启动时运行的:Jhipster测试中液化酶的使用,jhipster,liquibase,Jhipster,Liquibase,我想在Jhipster应用程序中使用LiquiBase在每次测试后重新填充数据库。我是如何设置Junit测试的 我发现最初LiquiBase是通过以下方式在应用程序启动时运行的: @Bean public SpringLiquibase liquibase(@Qualifier("taskExecutor") Executor executor, DataSource dataSource, LiquibaseProperties liquibaseProperties) {
@Bean
public SpringLiquibase liquibase(@Qualifier("taskExecutor") Executor executor,
DataSource dataSource, LiquibaseProperties liquibaseProperties) {
// Use liquibase.integration.spring.SpringLiquibase if you don't want Liquibase to start asynchronously
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(dataSource);
liquibase.setChangeLog("classpath:config/liquibase/master.xml");
liquibase.setContexts(liquibaseProperties.getContexts());
liquibase.setDefaultSchema(liquibaseProperties.getDefaultSchema());
liquibase.setDropFirst(liquibaseProperties.isDropFirst());
liquibase.setChangeLogParameters(liquibaseProperties.getParameters());
if (env.acceptsProfiles(Profiles.of(JHipsterConstants.SPRING_PROFILE_NO_LIQUIBASE))) {
liquibase.setShouldRun(false);
} else {
liquibase.setShouldRun(liquibaseProperties.isEnabled());
log.debug("Configuring Liquibase");
}
return liquibase;
}
但是我找不到一种方法来删除所有表并重新运行所有更改集。在测试中使用
@Transactional
注释还不够吗
Liquibase主要用于构建模式,部分用于在JHipster中加载一些测试数据,但如果您的测试是事务性的,则测试插入或修改的数据将在每个测试方法之后自动回滚
删除模式并为每个测试重新创建它会慢得多。
即使您不想使用事务性测试,删除表内容也比删除表并重新创建表要快。
@transactional
不适合我的情况。删除所有数据并再次插入是好的,但我仍然看不到任何使用LiquiBase的方法。无论如何,谢谢你指出LiquiBase不适合我的情况。你不是用LiquiBase而是用你自己的代码。看一看