用途:该技能用于为 Langflow 编写与审查 Playwright 端到端(E2E)测试。触发场景包括用户要求为某功能或流程编写 E2E 测试、修复失败的 E2E 测试、审查 E2E 测试覆盖度,或修改组件中的 data-testid 属性、改动 src/frontend/tests/utils/ 下的测试工具时。不适用于单元测试(应使用 Jest 的前端测试技能)和后端测试(应使用 pytest 的后端代码审查技能)。
主要能力:基于 Playwright 1.59.1 与内置 Chromium(Firefox/Safari 已禁用),使用自定义夹具 tests/fixtures.ts 自动检测 API 错误与流程执行失败。常用命令:npx playwright test;按标签过滤如 npx playwright test --grep "@release"、"@workspace"、"@starter-projects";运行指定文件如 npx playwright test tests/core/features/run-flow.spec.ts;调试 npx playwright test --debug;报告 npx playwright show-report;更新快照 npx playwright test --update-snapshots。
约定与配置:配置文件为 src/frontend/playwright.config.ts,fullyParallel 为 true,timeout 5 分钟,retries 本地 3、CI 2,workers 2,actionTimeout 20s,trace 为 on-first-retry,baseURL 为 http://localhost:3000,WebServer 自动启动后端(uvicorn 7860)与前端(npm start 3000)。测试文件用 kebab-case 加 .spec.ts,E2E 用 .spec.ts、单元测试用 .test.tsx,不可混用。每个测试必须打 @release 标签,另可加 @workspace、@api、@database、@components、@starter-projects,不得自造标签。需从 ../../fixtures 导入 test 与 expect,不能从 @playwright/test 导入;测试开头调用 awaitBootstrapTest(page),优先使用 getByTestId。
限制与注意事项:全局变量被选中时字段渲染为徽章而非 input,getByTestId 找不到对应元素;访问 edit-fields-button 前必须先调用 enableInspectPanel(page);避免使用 page.waitForTimeout(),不硬编码 API 密钥,跳过测试必须提供原因。相关参考包括选择器模式、辅助函数与测试夹具文档。其余细节暂未提供。