ワンクリックで
test-runner
运行 pytest + 结构化分析失败原因。触发:运行测试、跑测试、run test、pytest、失败分析、allure。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
运行 pytest + 结构化分析失败原因。触发:运行测试、跑测试、run test、pytest、失败分析、allure。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | test-runner |
| description | 运行 pytest + 结构化分析失败原因。触发:运行测试、跑测试、run test、pytest、失败分析、allure。 |
⚠️ 运行前必须向用户确认
--env(见 agent-behavior.md P0.2)。 即使config/settings.py::DEFAULT_ENV="prod"、即使下方示例写--env=<pre|prod>(示例 ≠ 默认值),仍必须问用户。
# 确认虚拟环境已激活
source .venv/bin/activate
# 确认依赖已安装
pip list | grep -E "playwright|pytest|allure"
所有测试均基于真实环境(URL + token)运行。
场景: 替换定位符后验证、调试单个页面回归点
# 对应角色
pytest tests/<role>/test_<role>_flow.py --env=<pre|prod> -v -k "test_xxx"
# 对应角色
pytest tests/<role>/test_<role>_home.py --env=<pre|prod> -v -k "test_<case_name>"
场景: 发版前验证、完整回归
# <角色A>全量
pytest tests/<roleA>/ --env=<pre|prod>
# <角色B>全量
pytest tests/<roleB>/ --env=<pre|prod>
# 全量
pytest tests/ --env=<pre|prod>
# 启动报告服务器查看(运行完测试后直接可用)
allure serve reports/allure-results
# 生成静态报告(可部署)
allure generate reports/allure-results -o reports/allure-report --clean
tests/test_xxx.py::TestXxx::test_method PASSED → 通过
tests/test_xxx.py::TestXxx::test_method FAILED → 失败(需分析)
tests/test_xxx.py::TestXxx::test_method ERROR → fixture/setup 异常
tests/test_xxx.py::TestXxx::test_method SKIPPED → 跳过
运行失败后,按以下分类诊断:
特征:
TimeoutError: Timeout 10000ms exceeded.
waiting for locator("text=<功能名>")
处理: 触发 locator-replacer skill,使用 agent-browser 访问真实页面重新抽取定位符(工具选型遵循 agent-behavior P0.4)。
特征:
TimeoutError: page.wait_for_load_state: Timeout 30000ms exceeded.
waiting for "networkidle"
处理:
DEFAULT_TIMEOUT(临时措施)特征:
AssertionError: <页面中文名>加载失败
assert False
处理:
PAGE_IDENTIFIER 定位符是否仍然有效特征:
AssertionError: Token 登录失败
处理:
config/settings.py 中的 token 是否有效--env 参数是否选对当失败需要深入排查时(定位符失效、页面结构变化等),建议进入 quick-debug 模式:通过 token 免登直接跳转到问题页面,避免从登录重走完整流程。
运行完成后,按以下格式输出摘要:
## 测试运行摘要
**运行模式:** 单个 story / 主流程全量
**环境:** pre / prod
**时间:** 2026-04-15 15:30
### 结果
| 状态 | 数量 |
|------|------|
| PASSED | X |
| FAILED | X |
| ERROR | X |
| SKIPPED | X |
### 失败详情(如有)
| 测试用例 | 失败类型 | 原因 | 建议操作 |
|----------|---------|------|---------|
| test_xxx | A: 定位符失效 | text=xxx 不唯一 | 使用 locator-replacer |
| test_yyy | D: 认证失败 | token 过期 | 更新 settings.py |
Incrementally add regression test points to an existing PageObject. Trigger: add test point, add regression point, add test point, increase coverage, extend page methods.
POM layering and context sharing decision tree. Trigger: architecture, layering, POM, Page Object, base class design, add new role.
Browser viewport / headless / timeout layered configuration. Trigger: viewport, browser config, navigation timeout, headless, slow_mo, incognito.
Under a shared page, a test case that leaves the start page must return via the UI and assert. Trigger: round-trip closure, case round trip, reset timeout, scope shared page.
AST knowledge graph: change review, exploration, debugging, refactoring. Trigger: knowledge graph, code review, impact analysis, blast radius, refactoring.
One-click generation of PageObject + matching tests. Trigger: new page, generate page, gen page, create page, add page object.