web-dev-qa-db-ja.com

Jestは、expressを使用してテスト実行が完了した後、1秒で終了しませんでした

エクスプレスルートのユニットテストにJESTを使用しています。

yarn testの実行中にすべてのテストケースに合格しましたが、エラーが発生します

Jest did not exit one second after the test run has completed.

This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.

asyncdoneを使用しましたが、それでも上記のエラーが発生します。

以下は私のスペックコードです。助けてください

routes.spec.ts

const request = require('supertest');
describe('Test the root path', () => {
  const app = require('./index');

  test('GET /gql/gql-communication-portal/release-notes', async (done) => {
    const response = await request(app).get('/gql/gql-communication-portal/release-notes');
    expect(response.status).toBe(200);
    done();
  });
});
4
Aw3 Sol

私は同じ問題を抱えていましたが、package.jsonファイルに"test": "jest --detectOpenHandles"を追加してnpm test --detectOpenHandlesを実行しました。今回はエラーメッセージが表示されませんでした。多分あなたはそれをやってみることができます。

4
user9996891

私の問題はこのコードによって解決されました:

beforeAll(done => {
  done()
})

afterAll(done => {
  // Closing the DB connection allows Jest to exit successfully.
  mongoose.connection.close()
  done()
})
2
Saleh