使用超级测试时,Koa app会挂起

时间:2016-04-24 04:39:52

标签: node.js koa supertest

我的supertest / tape测试文件如下所示:

var test    = require('tape');
var app     = require('../../api');
var agent = require('supertest').agent
var supertestCompatibleServer = agent(app.callback());

test('GET /Campus.svc', function (t) { 

  supertestCompatibleServer
  .get('/Campus.svc')
  .expect(200)
  .expect('Content-Type', /json/)
  .end(function (err, res) {
    t.ifError(err, 'No error');
    t.end();
  });
});
  1. 端点我测试在启动服务器并使用curl或浏览器手动点击时工作正常。
  2. 测试运行正常并通过,但它们只是挂在最后而不是完成。
  3. 实际的端点代码只是命中数据库并返回一些记录为json。
  4. 可能导致测试挂起的原因以及如何解决?

1 个答案:

答案 0 :(得分:1)

结果与此问题有关:https://github.com/substack/tape/issues/216

在我的情况下,通过knex的数据库连接仍然打开,这导致节点进程完成。解决方案是在拆解测试中明确调用knex.destroy()