SuperAPI AI 工具集

playwright-best-practices

测试与质量

查看项目

更新于 10-15 16:46

技能介绍

用途:在编写或修改 Playwright 测试(.spec.ts、.test.ts,且导入 @playwright/test)时提供最佳实践指导。

主要能力与规则: 定位器优先级从高到低为 getByRole、getByLabel、getByPlaceholder、getByText、getByAltText、getByTitle、getByTestId,CSS/XPath 仅作最后手段。断言使用 Web-first 形式,如 await expect(locator).toBeVisible(),不要用 expect(await locator.isVisible()).toBe(true),因为 Web-first 匹配器会自动等待并重试。测试需隔离,每个测试自建数据,不共享状态;认证状态通过 setup project 加 storageState 复用,避免每个测试都走 UI 登录;优先用 fixtures 而非 beforeEach,以封装 setup 与 teardown。

CLI 上下文:从 Claude Code 或任意 CLI 智能体运行 Playwright 测试时,使用最小化 reporter 防止冗长输出占满上下文窗口,可用 --reporter=line 或 --reporter=dot;可在 playwright.config.ts 中配置当 CI 或 CLAUDE 环境变量存在时默认使用最小 reporter,配置片段见 playwright-patterns.md。

反模式:page.waitForTimeout(ms)、page.locator('.class')、XPath 选择器、测试间共享状态、每个测试 UI 登录、未 await 的手动断言、硬编码等待、CI/智能体中使用默认 reporter。

检查清单涵盖定位器、断言、页面对象构造器内定义定位器、无 waitForTimeout、测试隔离、认证复用、导航前设置网络 mock、按测试或 fixtures 创建数据、复杂流程加调试日志、CI/智能体使用最小 reporter。Page Object Model、fixtures、网络 mock 与配置示例见 playwright-patterns.md。

限制:资料未提供安装命令、价格、平台支持范围或具体效果数据。