【发布时间】:2019-03-31 21:11:30
【问题描述】:
好的,所以我一直在使用 jest 和 supertest 为我的 node.js 应用程序编写测试,对于第一个之后的每个测试套件,我都会收到错误 Error: listen EADDRINUSE: address already in use :::3000,我相信这是因为它试图启动每个测试文件上的服务器(我在/tests 中有多个测试文件*.test.js)
在每个测试文件中描述测试之前的顶部看起来像这样
const request = require("supertest");
const app = require("../index.js"); // the express server
jest.setTimeout(30000);
let token;
beforeAll(done => {
request(app)
.post("/api/users/login")
.send({
email: "email here",
password: "password here"
})
.end((err, response) => {
token = response.body.data; // save the token!
done();
});
});
afterAll(done => {
//logout() //Not implemented yet
done();
});
/* Test starts here */
那么,我需要知道如何防止 jest 尝试初始化我的服务器的多个实例?是否可以说所有这些代码都在预测试文件中运行?有什么我可以添加到我的afterAll 以使其停止服务器,所以当另一个测试开始时我很好吗?非常感谢。
【问题讨论】:
标签: node.js mongodb jestjs supertest