关于 e2e-panther-playwright
面向 Symfony 的浏览器端到端测试技能,使用 Panther;对 WebKit、追踪等需求也介绍独立运行 Playwright。内容涵盖环境配置、显式等待、断言和 CI 调试。
主要功能
- 01Panther 真实浏览器测试
- 02跨浏览器需求可选 Playwright
- 03显式等待与状态断言
- 04驱动和 CI 配置指引
适用场景
- 01测试 JavaScript 驱动的流程
- 02验证登录或结账流程
- 03调试 CI 中的浏览器测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dev-toolings/ superpowers-symfony --skill e2e-panther-playwright安装后在 Claude Code 中输入/e2e-panther-playwright确认已加载。
附带文件reference.md
详细介绍
E2e Panther Playwright(Symfony)
使用场景
- 流程需要真实浏览器:JavaScript、登录、结账或注册等多页面旅程。
- 行为依赖客户端渲染,
WebTestCase无法观察到。 - 需要 WebDriver 未覆盖的跨浏览器功能(WebKit、跟踪、视频):单独运行 Playwright。
- 调试仅在 CI 中失败的浏览器测试。
默认工作流
- 选择客户端:需要真实浏览器时使用
static::createPantherClient(),不需要 JavaScript 时使用static::createClient()。 - 安装
symfony/panther和dbrekelmans/bdi,运行vendor/bin/bdi detect drivers,并在phpunit.dist.xml中注册ServerExtension。 - 扩展
PantherTestCase,并通过显式等待驱动流程:waitFor()、waitForVisibility()、waitForElementToContain()。 - 使用
assertSelectorWillExist()或assertSelectorWillContain()断言未来状态,使用assertSelectorIsVisible()断言当前状态。 - 将测试套件放在
tests/E2E中,并在测试之间重置数据库(使用 DAMADoctrineTestBundle 或 Foundry)。 - 使用
PANTHER_NO_HEADLESS=1和--debug调试;在 CI 中设置PANTHER_NO_SANDBOX=1。
注意事项
- 绝不依赖隐式时序:每个异步步骤都要使用
waitFor*或assertSelectorWill*。 - 定位
data-testid属性,而非样式类。 - 删除
takeScreenshot()或PANTHER_ERROR_SCREENSHOT_DIR写入的 PNG 文件;绝不要提交这些文件。 - E2E 测试运行缓慢:仅覆盖关键路径,并与单元测试分开。
渐进式披露
- 使用此文件了解执行方式和风险控制。
- 需要深入了解实现细节时,打开参考资料。
输出约定
- E2E 测试文件,并注明使用的客户端类型和等待策略。
- 驱动程序设置、
ServerExtension注册,以及本地和 CI 所需的PANTHER_*变量。 - 确认截图已清理。
参考资料
reference.md
评论
支持 Markdown