使用Puppeteer做Node.js集成测试报beforeEach未定义错误如何解决
问题原因
你遇到的ReferenceError: beforeEach is not defined报错,核心原因是Jest专属的全局测试方法只有在通过Jest命令执行测试时才会被注入到运行环境中,直接用Node命令运行测试文件时,Node原生环境不存在这些全局变量,就会抛出未定义错误。
解决步骤
- 首先确认执行测试的命令正确:你已经在
package.json的scripts中配置了"test": "jest",直接执行npm test即可,不要使用node integration-tests/basic-navigation.test.js这类原生Node命令运行测试文件。 - 如果执行
npm test后仍然识别不到测试用例,可在package.json中补充Jest的测试目录匹配配置,明确指定测试文件位置:
{ "jest": { "testMatch": ["**/integration-tests/**/*.test.js"] } }
- 可选优化项:你当前测试代码中
page.waitForNavigation()在低版本Puppeteer中偶现跳转超时问题,可添加超时参数避免偶发失败:
page.waitForNavigation({ timeout: 5000 })
内容的提问来源于stack exchange,提问作者Kaguei Nakueka
相关产品推荐
相关产品推荐

