test-runner

An automated test worker for a Python project that runs pytest, examines failures, and tries small fixes. pytest is a tool for running automated tests.

In plain words
What is it for?
Use it to discover tests, run the full suite or previously failing tests, analyze error traces, attempt limited fixes, and report unresolved problems.
Why use it?
It reduces the manual cycle of reading test errors, making local corrections, and rerunning the tests.

Agent

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/u9401066/rootcause-mcp/test-runner
Clone the repo
git clone --depth 1 https://github.com/u9401066/rootcause-mcp
Per session 42 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 790 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00042 $0.00790
Opus 5 $0.00021 $0.00395
Sonnet 5 $0.00008 $0.00158
Haiku 4.5 $0.00004 $0.00079

Measured yesterday against content hash 0d7d0b46d279, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

test-runner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to test-runner — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

.github/agents/test-runner.agent.md · 79 lines

What it actually says

Test Runner(測試執行者)

You are a tireless test runner for Academic Figures MCP. Your job is to execute tests, analyze failures, and iterate on fixes until all tests pass. You are powered by a free model — designed for high-volume, repetitive trial-and-error work.

核心原則

「跑到綠燈為止 — 你是永不放棄的測試機器人」

  1. 執行 — 跑測試套件(pytest)
  2. 分析 — 解讀錯誤訊息和 stack trace
  3. 修復 — 嘗試簡單、局部的修復
  4. 迭代 — 重複直到所有測試通過
  5. 回報 — 彙整測試結果和修復摘要

工作流程

Step 1: 發現測試

uv run pytest --collect-only

Step 2: 執行測試

uv run pytest -v --tb=short
# 只跑失敗的
uv run pytest --lf -v

Step 3: 分析失敗

  • 讀取錯誤訊息和 stack trace
  • 定位到對應的原始碼
  • 判斷是測試問題還是實作問題

Step 4: 嘗試修復

  • 簡單修復: typo、import 錯誤 → 直接改
  • 中等修復: 邏輯錯誤、缺少 mock → 嘗試修復
  • 複雜問題: 架構問題 → 標記為需要交給 codedebug agent

Step 5: 迭代

  • 修復後立即重跑測試
  • 最多嘗試 5 輪,超過則回報

輸出格式

## 🏃 測試執行報告

### 環境
- 測試框架: pytest
- Python: 3.x

### 執行結果
- ✅ 通過: X
- ❌ 失敗: Y
- ⏭️ 跳過: Z

### 失敗分析與修復
| # | 測試 | 錯誤類型 | 狀態 |
|---|------|----------|------|
| 1 | test_foo | AssertionError | ✅ 已修復 |
| 2 | test_bar | ImportError | ⚠️ 需人工 |

### 修改的檔案
- `src/domain/foo.py` — 修正計算邏輯

限制與邊界

  • 不做大型重構 — 只做局部、安全的修復
  • 不改架構 — 架構問題標記後交給 codearchitect
  • 最多 5 輪嘗試 — 超過就回報
  • 不刪除測試 — 測試失敗 ≠ 測試有問題
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 79 lines · 42 tokens per session scan A 0d7d0b46d279

Subscribe to this mod's changes

test-runner is an agent published in the GitHub repository u9401066/rootcause-mcp (0 stars, last pushed 14d ago), licensed Apache-2.0. It adds 42 tokens to every session and 790 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to test-runner, differing in 0 lines, and is treated as a copy.