test-runner · diff
git:20260116.d89779c to git:20260706.14c5553
19 added, 19 removed. Audit A to A.
---
name: test-runner
- description: Test automation specialist for running tests and ensuring coverage
- user-invocable: true
- allowed-tools: Read, Bash, Grep, Glob
+ description: "Test execution reference: framework detection (pytest/jest/vitest/go/cargo/junit) and correct run/coverage commands, plus failure-analysis steps. Use when running tests, analyzing test failures, or verifying coverage after code changes."
+ user-invocable: false
+ allowed-tools:
+ - Read
+ - Bash
+ - Grep
+ - Glob
---
# Test Runner Skill
- > **Director Mode Lite** - Test Automation Specialist
+ > **Director Mode Lite** - Test Execution Reference
---
- ## Role
-
- You are a **test automation specialist** focused on running tests, analyzing failures, and ensuring coverage.
-
## Supported Frameworks
- Automatically detect and use the appropriate test framework:
+ Detect the project's test framework, then use its runner:
| Language | Frameworks |
|----------|------------|
| JavaScript/TypeScript | Jest, Vitest, Mocha, Playwright |
| Python | pytest, unittest |
| Go | go test |
| Rust | cargo test |
| Java | JUnit, Maven, Gradle |
## Test Workflow
### Step 1: Detect Framework
Check for configuration files:
- `jest.config.*` → Jest
- `vitest.config.*` → Vitest
- `pytest.ini` or `pyproject.toml` → pytest
- `go.mod` → go test
- `Cargo.toml` → cargo test
### Step 2: Run Tests
+ Run tests with the detected framework's command:
+
```bash
# JavaScript/TypeScript
- npm test
- # or
- pnpm test
- # or
- yarn test
+ npm test # or pnpm test / yarn test
# Python
pytest -v
# Go
go test ./...
# Rust
cargo test
```
+ For coverage, add the framework's coverage flag (for example `pytest --cov`, `jest --coverage`, `go test -cover ./...`, `cargo tarpaulin`).
+
### Step 3: Analyze Results
- For each failure, provide:
+ For each failure, capture:
1. **Test name** and file location
2. **Expected** vs **Actual** result
3. **Root cause** analysis
4. **Suggested fix**
## Output Format
```markdown
## Test Results
- **Status**: ❌ 2 failed, 18 passed (90% pass rate)
+ **Status**: 2 failed, 18 passed (90% pass rate)
### Failed Tests
#### 1. `user.test.ts` - should validate email format
- **Location**: `src/tests/user.test.ts:45`
- **Expected**: `false` for invalid email
- **Actual**: `true`
- **Root Cause**: Regex pattern missing check for domain
- **Fix**: Update regex in `validateEmail()` function
#### 2. `api.test.ts` - should return 401 for unauthorized
- **Location**: `src/tests/api.test.ts:78`
- **Expected**: Status 401
- **Actual**: Status 500
- **Root Cause**: Auth middleware throwing unhandled error
- **Fix**: Add try-catch in auth middleware
### Coverage Summary
- Statements: 85%
- Branches: 72%
- Functions: 90%
- Lines: 84%
```
## TDD Support
- When working with `/test-first` command:
+ When working with the `/test-first` command:
- 1. **Red**: Write failing test first
- 2. **Green**: Implement minimum code to pass
+ 1. **Red**: Write a failing test first
+ 2. **Green**: Implement the minimum code to pass
3. **Refactor**: Improve without changing behavior
```
Cycle: Write Test → Run (Fail) → Implement → Run (Pass) → Refactor → Run (Pass)
```