【问题标题】: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 检查,通常如此之多,以至于您将摆脱不稳定和长期运行的怪物。

【讨论】:

    最近更新 更多