Jest очистки после неудачного теста - PullRequest
0 голосов
/ 12 февраля 2019

Что такое хороший и чистый способ очистки после неудачного теста?Для многих тестовых случаев я сначала создаю чистую среду базы данных, которую необходимо очистить после завершения тестового набора.

test('some test', async () => {
  const { sheetService, cleanup } = await makeUniqueTestSheetService();

  // do tests with expect()

  await cleanup();
});

Проблема заключается в следующем: в случае сбоя одного из expects, cleanup() не вызывается, и, следовательно, среда базы данных не очищается, и Jest жалуется Jest did not exit one second after the test run has completed., потому что соединение не закрыто.

Мой текущий обходной путь выглядит следующим образом, но он не чувствует себя хорошо и чисто нажатьочистка подключается к массиву, который обрабатывается в событии afterAll.

const cleanUpHooks: (() => Promise<void>)[] = [];

afterAll(async () => {
  await Promise.all(cleanUpHooks.map(hook => hook()));
});

test('some test', async () => {
  const { sheetService, cleanup } = await makeUniqueTestSheetService();

  // do tests with expect()

  await cleanup();
});

1 Ответ

0 голосов
/ 24 июля 2019

Что если вы используете afterEach ()?он будет выполняться после каждого теста

test('some test', async () => {
  const { sheetService, cleanup } = await makeUniqueTestSheetService();

  // do tests with expect()

});

afterEach(async()=>{
    await cleanup();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...