在 AWS Codebuild 上开玩笑 运行 时不关闭()ing expressjs 服务器

Jest not close()ing expressjs server when run on AWS Codebuild

当我 运行 本地 jest 正常退出时,但是当 运行 在 codebuild 上 jest 不会退出并给出此错误:

Jest has detected the following 1 open handle potentially keeping Jest from exiting:

● 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) 没有帮助

好的,有点业余错误。当我包装 app.close() 调用时,结果发现它是未定义的。我试图 运行 关闭 express 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