让 Mocha 测试等待数据库构建的问题

Problems getting Mocha tests to wait for db to be built

我有以下代码,旨在创建一个测试数据库,对其进行升级,为它播种数据,然后 运行 一堆 mocha 测试:-

 await createDatabase().then(async () => {
        console.log("upgrading database");
        await dbUpgrade().then(async () => {
            console.log("seeding database");
            await seedTestDatabase().then(() => {

在“seedTestDatabase”之后,我调用了我所有的测试套件。当我 运行 这段代码时,我在控制台中得到以下信息:-

正在打开数据库 ./db/test.sqlite 侦听端口 4001 创建数据库 升级数据库 开始升级

0 次通过(1 毫秒)

完成升级 种子数据库 播种测试数据库 开始测试

出于某种原因,Mocha 在 db upgrade 函数的中间决定它找不到任何测试!如果我 运行 函数 createDatabase、dbUpgrade 然后 seedDatabase 一一手动,一切正常。摩卡怎么了?

可能,它可以与 mochajs 一起使用



describe('test database is build', function(){ 

  this.timeout(60 * 1000); // mocha terminates tests after 3 seconds with timeout error

  it('creates database', function() {
    return createDatabase();
  });
  it('updates database', function() {
    return dbUpgrade();
  });
  it('seeds database', function() {
    return seedTestDatabase();
  });
});


如果我们假设问题 returns promise 中描述的每个函数,我们可以将它们全部称为 promise 风格方法中的测试套件项