我正在尝试使用 mocha 和 google puppeteer 测试我的组件。在我的单元测试文件中,我在函数之前启动 puppeteer 浏览器,并在函数之后关闭浏览器。当我运行测试文件时,出现以下错误 “Before All” Hook 错误:超时超过 2000 毫秒。对于异步测试和 Hook ,确保调用“done()”;如果返回 Promise,请确保它能够解决。
const puppeteer = require('puppeteer');
const { expect } = require('chai');
const _ = require('lodash');
/* create the global variable by using lodash function */
const globalVariables = _.pick(global, ['browser', 'expect']);
/* configurable options or object for puppeteer */
const opts = {
headless: false,
slowMo: 100,
timeout: 0,
args: ['--start-maximized', '--window-size=1920,1040']
}
/* call the before for puppeteer for execute this code before start testing */
before (async () => {
global.expect = expect;
global.browser = await puppeteer.launch(opts);
});
/* call the function after puppeteer done testing */
after ( () => {
browser.close();
global.browser = globalVariables.browser;
global.expect = globalVariables.expect;
});
最佳答案
在保存测试文件的单元测试用例的根目录中,添加一个 mocha.opts
文件,并添加 --timeout 50000
这将设置mocha 在 50000 毫秒后超时。
现在应用了默认超时,并且由于测试操作尚未完成,因此您会收到此错误。
关于javascript - 对于异步测试和 Hook ,请确保调用 "done()";如果返回 Promise,请确保它解析 puppeteer 和 mocha,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058558/