【问题标题】:Supertest don't close Koa server after testsSupertest 测试后不关闭 Koa 服务器
【发布时间】:2018-03-08 19:14:38
【问题描述】:

我有 koa app 和 jest 测试框架,apphttp.createServer 包裹并连接到 mongo

mongooseConnect();

const app = new Koa();

initHandlers(app);

app.use(routes);

export default http.createServer(app.callback());

测试超测后不关闭服务器,测试示例

test('success create user', (done) => {
      return supertest(app)
        .post(`/api/auth/signup`)
        .send(userData)
        .expect(200)
        .expect({
          data: {
            email: userData.email,
            firstName: userData.firstName.toLowerCase(),
            lastName: userData.lastName.toLowerCase(),
            bio: userData.bio,
          },
        }, done);
    });

【问题讨论】:

    标签: node.js jestjs koa supertest koa2


    【解决方案1】:

    你必须手动关闭服务器:

          },
        }, () => {
        app.close()
        done()
      });
    });
    

    【讨论】:

      【解决方案2】:

      在所有测试结束后关闭猫鼬连接

      afterAll(async (done) => {
        await closeMongoConnection();
        done();
      });
      

      closeMongoConnection:

      import mongoose from 'mongoose';
      
      export default () => {
        return new Promise((res) => {
          res(mongoose.connection.close());
        });
      };
      

      【讨论】:

      • 这是询问 Koa 服务器而不是 mongoose 连接。
      猜你喜欢
      • 2013-12-10
      • 2016-08-17
      • 1970-01-01
      • 2018-03-01
      • 2012-12-19
      • 1970-01-01
      • 2021-11-21
      • 2020-08-21
      • 2017-03-06
      相关资源
      最近更新 更多