当我在本地运行时,jest可以退出,但是在codebuild上运行时,jest不会退出并给出此错误:
Jest已检测到以下1个打开的句柄,有可能阻止Jest退出:
●TCPSERVERWRAP
13 | routes(app)
14 |
> 15 | app.listen(port, async err => {
这两种变体都可以在本地使用,但不能在代码构建上使用:
afterAll((done) => {
if (app) {
app.close(done);
}
})
afterAll(async () => {
if (app) {
await app.close()
}
})
使用process.exit(0)
无济于事
答案 0 :(得分:1)
好的,有点业余错误。当我包装app.close()
调用时,结果表明它是未定义的。我试图在快速request
对象上运行。我必须从实例化express的位置导出服务器对象:
afterAll(async () => {
try {
await server.close()
} catch (error) {
console.error(error)
throw error;
}
})
const app = express()
routes(app)
const server = app.listen(port, async err => {
...
module.exports = app
module.exports.server = server