Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/JansenAnalytics/claudexnpx agentmods add skills/jansenanalytics/claudex/test-runnerWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jansenanalytics/claudex/test-runner)<a href="https://agentmods.dev/skills/jansenanalytics/claudex/test-runner"><img src="https://agentmods.dev/badge/skills/jansenanalytics/claudex/test-runner.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.00518 |
| Opus 5 | $0.00023 | $0.00259 |
| Sonnet 5 | $0.00009 | $0.00104 |
| Haiku 4.5 | $0.00005 | $0.00052 |
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 4d ago.
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.
What it actually says
test-runner
Run and interpret test suites across frameworks: Jest, Vitest, pytest, Mocha, tap. Use when: running tests, debugging test failures, generating coverage reports, writing test fixtures, or setting up test infrastructure for a project.
Usage
Run Tests
bash scripts/run-tests.sh [path]
Auto-detects framework from project files. Pass optional path to scope test run.
Coverage Report
bash scripts/coverage-report.sh [path]
Runs tests with coverage and summarizes results.
Detect Flaky Tests
bash scripts/flaky-detector.sh [path] [runs]
Runs test suite multiple times (default: 5) and reports tests with inconsistent results.
When to Use
- Running tests in an unfamiliar project (auto-detects framework)
- Debugging test failures — scripts parse output for actionable info
- Checking coverage before a PR
- Investigating flaky tests that pass/fail intermittently
- Setting up test infrastructure for a new project
Framework Detection
Priority order:
vitest.config.*→ Vitestjest.config.*or"jest"in package.json → Jest.mocharc.*or"mocha"in package.json → Mocha"tap"in package.json → tappytest.ini/pyproject.tomlwith[tool.pytest]/setup.cfgwith[tool:pytest]→ pytest- Fallback:
npm testif package.json exists,python -m pytestif.pytest files exist
Resources
scripts/run-tests.sh— Universal test runner with framework detectionscripts/coverage-report.sh— Coverage reporterscripts/flaky-detector.sh— Flaky test detectorreferences/framework-detection.md— Detection logic detailsreferences/assertion-patterns.md— Common assertion patterns across frameworksreferences/mocking-patterns.md— Mocking/stubbing patterns
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.
- 4d ago First seen · 66 lines · 46 tokens per session scan A 6150ef9463a4
test-runner is a skill published in the GitHub repository JansenAnalytics/claudex (5 stars, last pushed 2mo ago), licensed MIT. It adds 46 tokens to every session and 518 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
test-generator
A skill for creating unit tests, generating mock data or objects, and analysing test coverage. Unit tests check small parts of a program in isolation.
plugin-test
A testing guide for Zhin.js plugins using Vitest, a JavaScript and TypeScript testing framework. It focuses on checking command and tool behavior, ordinary business logic, and the plugin package’s required structure.
pytest-testing
Write maintainable pytest suites — fixtures and scopes, parametrize, tmppath, monkeypatch, coverage, and a CI-friendly layout.
test-generator
Generate comprehensive unit, integration, and end-to-end tests. Use when adding test coverage, writing tests for new features, or improving existing test suites.
qcsd-development-swarm
QCSD Development phase swarm for in-sprint code quality assurance using TDD adherence, code complexity analysis, coverage gap detection, and defect prediction. Consumes Refinement outputs (BDD scenarios, SFDIPOT priorities) and produces signals for Verification.
create-pytests
Generates pytest test files for a Python codebase (or a targeted scope) that.