【问题标题】:How do I rollback adonisjs database before running functional tests with japa?如何在使用 japa 运行功能测试之前回滚 adonisjs 数据库?
【发布时间】:2023-02-18 21:16:35
【问题描述】:

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

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

这是我当前的引导程序文件的样子。

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

  teardown: [],
}```

【问题讨论】:

    标签: javascript node.js orm adonis.js


    【解决方案1】:

    我不确定如何在引导程序文件中执行此操作,但这对我在测试组中非常有效:

    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
    });
    

    【讨论】:

      猜你喜欢
      • 2012-04-03
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 2019-09-17
      • 2021-06-26
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多