【问题标题】:Tests are failing when running together but pass individually using jest and puppeteer一起运行时测试失败,但使用 jest 和 puppeteer 单独通过
【发布时间】:2025-12-08 13:05:01
【问题描述】:
所以我使用 jest 和 puppeteer 编写了一些包含 describe 的测试。每套套装基本上都保存为 js 文件,并在里面包含多个测试,我注意到当我使用“npm run test”运行多个套件时,一些测试失败了,但是当我单独运行每个套件时,里面的所有测试一直都通过。
知道这种行为的根本原因是什么吗?
也许在“beforeEach”阶段需要刷新一些东西?
10 倍
【问题讨论】:
标签:
visual-studio-code
jestjs
puppeteer
【解决方案1】:
造成这种情况的根本原因(几乎)总是副作用,即您的检查不是相互独立的。
解决方案在于您如何看待这些检查。通常,您希望:
- 检查是独立的
- 尽可能小
- 每个检查只检查一件事,这意味着其中有一个断言
- 共享步骤在 before 或 beforeEach 挂钩中
- 您在 UI 上做事时会走捷径,即使用 API 调用、设置 cookie、本地存储等,而不仅仅是点击 UI
执行其中任何一项(最好是全部执行)都将帮助您改进 UI 检查,通常如此之多,以至于您将摆脱不稳定和长期运行的怪物。