Jhipster测试中液化酶的使用

Jhipster测试中液化酶的使用,jhipster,liquibase,Jhipster,Liquibase,我想在Jhipster应用程序中使用LiquiBase在每次测试后重新填充数据库。我是如何设置Junit测试的 我发现最初LiquiBase是通过以下方式在应用程序启动时运行的: @Bean public SpringLiquibase liquibase(@Qualifier("taskExecutor") Executor executor, DataSource dataSource, LiquibaseProperties liquibaseProperties) {

我想在Jhipster应用程序中使用LiquiBase在每次测试后重新填充数据库。我是如何设置Junit测试的

我发现最初LiquiBase是通过以下方式在应用程序启动时运行的:

@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而是用你自己的代码。看一看