【问题标题】:Problems getting Mocha tests to wait for db to be built让 Mocha 测试等待构建数据库的问题
【发布时间】:2021-02-05 17:53:33
【问题描述】:

我有以下代码,旨在创建一个测试数据库,升级它,用数据播种,然后运行一堆 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 通过 (1ms)

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

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

【问题讨论】:

    标签: javascript node.js asynchronous async-await mocha.js


    【解决方案1】:

    可能,它可以与 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();
      });
    });
    
    
    

    如果我们假设所描述的每个函数都返回promise,我们可以将它们全部称为promise 样式方法中的测试套件项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 2023-03-10
      • 2017-06-15
      • 1970-01-01
      相关资源
      最近更新 更多