5

我们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 超时时间,或者是否有其他可能的解决方案来阻止此消息?

4

1 回答 1

0

我遇到了类似的事情,解决方案是从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: {}
  });
}
于 2019-07-07T14:25:46.323 回答