我要测试与Jest一起运行的后端服务器。 它有时会成功,但有时它会显示这样的错误。
因此,如果我按照建议使用--detectOpenHandles标志,它将始终成功而不显示eny错误。 这是测试代码。
it("should be able to initialize a server (development)",async (done) => {
// Before main() is called there is no active connection:
expect(connection.readyState).toBe(0);
return main({
env: "dev",
port: PORT,
})
.then(async (server: ApolloServer) => {
// After main() got called, there is an active connection:
expect(connection.readyState).toBe(1);
await server.stop();
done();
})
});
afterAll(async () => {
await connection.close(); //connection is mongoose.connection
});
我不确定为什么在标记时失败。 有时候它成功了,而另一些时候却失败了,这很奇怪。
谢谢
答案 0 :(得分:0)
我遇到了类似的问题,并通过在传递给afterAll
的函数中返回一个promise来设法解决了这个问题。例如:
afterAll(() => {
return connection.close(); // connection.close() returns a promise
});
答案 1 :(得分:0)
与用户的问题无关,但仍然导致标题中的问题:
从
testEnvironment: 'node',
中的testEnvironment: 'jsdom',
至jest.config.js
似乎可以解决此问题。