Node.js 膝关节炎应用程序在超测试时挂起

Node.js 膝关节炎应用程序在超测试时挂起,node.js,koa,supertest,Node.js,Koa,Supertest,我的supertest/磁带测试文件如下所示: var test = require('tape'); var app = require('../../api'); var agent = require('supertest').agent var supertestCompatibleServer = agent(app.callback()); test('GET /Campus.svc', function (t) { supertestCompatibleSe

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

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();
  });
});
  • 当启动服务器并用curl或浏览器手动点击时,我正在测试的端点工作正常
  • 测试运行良好并通过,但它们只是挂在最后,而不是结束
  • 实际的端点代码只会命中数据库,并以json的形式返回一些记录

  • 什么可能导致测试挂起?我如何修复它?

    这与此问题有关:

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