在使用japa运行功能测试之前,如何回滚adonisjs数据库?



我设置了我的引导文件来运行一些testtil命令,这样我就可以在运行完整的功能测试套件之前迁移和播种我的测试数据库。我遇到的问题是,当我的用于创建Admin用户的种子程序运行时,它失败了,因为用户仍在数据库中,不会让我重新创建帐户。

我想在播种机运行之前清除数据库中的所有数据。在引导文件中是否有简单的方法来做到这一点?

这是我当前的引导文件。

export const runnerHooks: Required<Pick<Config, 'setup' | 'teardown'>> = {
setup: [
() => TestUtils.ace().loadCommands(),
() => TestUtils.db().migrate(),
() => TestUtils.db().seed(),
],
teardown: [],
}```

我不确定如何在引导文件中做到这一点,但这对我来说在测试组中非常有效:

test.group('Content API', (group) => {
group.each.setup(async () => {
await Database.beginGlobalTransaction();
return () => Database.rollbackGlobalTransaction();
});
// your tests each starting with a squeeky clean database here
});

最新更新