Как я могу решить сообщение Jest «Jest не вышел из системы через секунду после завершения тестового прогона»? - PullRequest
0 голосов
/ 08 октября 2018

Мы используем frisby.js для наших автоматических тестов API, а frisby.js использует Jest в качестве тестового прогона.Теперь в нашем случае мы выполняем глобальную настройку перед выполнением всех тестов API, а после выполнения теста мы выполняем глобальную разборку.

Эта глобальная настройка и разбор я установил в jest.conf.js:

globalSetup: './jest.globalSetup.js',
globalTeardown: './jest.globalTeardown.js',

Итак, глобальный анализ экспортирует асинхронную функцию, которая запускается один раз после всех тестовых наборов.В нашем глобальном анализе мы создаем тестовое покрытие и отчеты о тестах с помощью внешнего механизма отчетов:

const coverage = require('./test-coverage-generator');
const XunitViewerCli = require('xunit-viewer/cli');

module.exports = async function() {
  await coverage.generateTestCoverage();
  await XunitViewerCli({
      results: './api/reporting/test-reports/jest-junit-report-' + process.env.API_TEST_FOLDER + '.xml',
      ignore: [],
      output: './api/reporting/test-reports/jest-junit-report-' + process.env.API_TEST_FOLDER + '.html',
      title: 'Test Report API Tests for ' + process.env.API_TEST_FOLDER,
      port: false,
      watch: false,
      color: true,
      filter: {}
  });
}

И проблема заключается в том, что Jest генерирует сообщение Jest did not exit one second after the test run has completed. в концетесты, потому что генерация отчета занимает больше одной секунды.

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

1 Ответ

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

Я столкнулся с чем-то похожим, решение было вернуть обещание от функции, экспортированной из модуля globalTeardown.Примерно так должно решить проблему:

module.exports = async function() {
  await coverage.generateTestCoverage();
  // returns a promise
  return XunitViewerCli({
      results: './api/reporting/test-reports/jest-junit-report-' + process.env.API_TEST_FOLDER + '.xml',
      ignore: [],
      output: './api/reporting/test-reports/jest-junit-report-' + process.env.API_TEST_FOLDER + '.html',
      title: 'Test Report API Tests for ' + process.env.API_TEST_FOLDER,
      port: false,
      watch: false,
      color: true,
      filter: {}
  });
}
...