我们使用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在测试运行完成后1秒没有退出。
在测试结束时,因为报告生成需要1秒以上的时间。
所以,我不想再看到这条消息了,因为这条消息很混乱。也许有可能在全球范围内增加一秒钟的默认笑话超时,或者有任何其他可能的解决方案来防止此消息?
我遇到了类似的问题,解决方案是从globalTeardown
模块导出的函数返回一个promise。这样的事情应该可以解决这个问题:
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: {}
});
}
我正在通过运行Jest测试。默认情况下,Jest并行运行测试。有没有办法让测试按顺序运行? 我有一些测试调用依赖于更改当前工作目录的第三方代码。
问题内容: 标题几乎可以解释我所面临的问题。我正在尝试测试具有某种状态的组件,并且试图为该组件提供存储以获取所需的组件。当我使用Jest运行组件的测试时,出现以下错误: 我已经通过了一些读数确定,这是造成或者没有被正确适用于玩笑。但是,我尝试安装这两个软件包并重新运行,但结果没有变化。阅读Jest Github问题页面(删除babel- polyfill的自动包含#2755 )后,我发现Jest从
这个标题很大程度上解释了我面临的问题。我试图测试一个具有某种状态的组件,并试图将我的存储提供给该组件以获取它需要的内容。当我使用Jest运行组件的测试时,我得到以下错误: 通过一些阅读,我确定这是由或未正确应用于Jest造成的。但是,我已经尝试安装这两个软件包并重新运行,结果没有变化。在阅读Jest Github问题页面(删除babel polyfill#2755的自动包含)后,我发现自版本19起
我想用Jest做一个测试。 我使用
问题内容: 我有一个取决于环境变量的应用程序,例如: 我想测试例如: 可以通过节点env变量设置APP_PORT。 或某个应用程序正在使用以下命令设置的端口上运行 我如何用Jest做到这一点?我可以在每次测试之前设置这些变量,还是应该以某种方式模拟它? 问题答案: 在每次测试之前重设resetModules,然后在测试内部动态导入模块很重要: 如果您在运行Jest之前寻找一种加载env值的方法,请
null