【发布时间】:2021-06-04 19:01:54
【问题描述】:
我正在使用 jest 和 supertest 来引发 express 实例并在其上运行测试。
我遇到了仍然无法解决的繁忙端口问题。
在我的测试中,我做了下一个:
import supertest from 'supertest';
const agent = supertest(app);
然后我向代理提出请求,一切正常。 直到我运行另一个测试。 在 app.js 我有:
var app = express();
app.post('/auth/changePassword',VerifyToken, auth.changePassword);
app.listen(4001, function () {
console.log('Server is running');
});
所以第一个规范运行完美。但第二次尝试监听已经在使用的端口。 我真的不知道怎么关闭这里的连接。
我尝试了app.close(),但这种方法出错了。这很清楚,我必须分配
server = app.listen(4001, function () {
console.log('Server is running');
});
server.close();
但不知道我该怎么做。 我还尝试在 jest.setup 中预设代理并将其分配给全局变量
import app from "../../server/app";
import supertest from 'supertest';
const agent = supertest(app);
global.agent = agent;
但情况是一样的,第一次测试通过,第二次尝试在同一个端口上提出 express。
【问题讨论】: