SKILL.md
Paths: File paths (references/, ../ln-*) are relative to this skill directory.
MANDATORY READ: Load references/ci_tool_detection.md — test framework registry, compact flags (--tb=short -q, --reporter=json), and normalization chain.
ln-782-test-runner
Type: L3 Worker
Category: 7XX Project Bootstrap
Purpose
Detects test frameworks, executes all test suites, and reports results including pass/fail counts and optional coverage.
Scope:
- Auto-detect test frameworks from project configuration
- Execute test suites for all detected frameworks
- Parse test output for pass/fail counts
- Generate coverage reports when enabled
Out of Scope:
- Building projects (handled by ln-781)
- Container operations (handled by ln-783)
- Writing or fixing tests
When to Use
Scenario
Use This Skill
Standalone-capable
Yes
Standalone test execution
Yes
CI/CD pipeline test step
Yes
Build verification needed
No, use ln-781
Workflow
Step 1: Detect Test Frameworks
Identify test frameworks from project configuration files.
Marker
Test Framework
Project Type
vitest.config.*
Vitest
Node.js
jest.config.*
Jest
Node.js
*.test.ts in package.json
Vitest/Jest
Node.js
xunit / nunit in *.csproj
xUnit/NUnit
.NET
pytest.ini / conftest.py
pytest
Python
*_test.go files
go test
Go
tests/ with Cargo.toml
cargo test
Rust
Step 2: Execute Test Suites
Run tests for each detected framework.
Framework
Execution Strategy
Vitest
Run in single-run mode with JSON reporter
Jest
Run with JSON output
xUnit/NUnit
Run with logger for structured output
pytest
Run with JSON plugin or verbose output
go test
Run with JSON output flag
cargo test
Run with standard output parsing
Step 3: Parse Results
Extract test results from framework output.
Metric
Description
total
Total number of tests discovered
passed
Tests that completed successfully
failed
Tests that failed assertions
skipped
Tests marked as skip/ignore
duration
Total execution time
Step 4: Generate Coverage (Optional)
When coverage enabled, collect coverage metrics.
Framework
Coverage Tool
Vitest/Jest
c8 / istanbul
.NET
coverlet
pytest
pytest-cov
Go
go test -cover
Rust
cargo-tarpaulin
Coverage Metrics:
Metric
Description
linesCovered
Lines executed during tests
linesTotal
Total lines in codebase
percentage
Coverage percentage
Step 5: Report Results
Return structured results to orchestrator.
Result Structure:
Field
Description
suiteName
Test suite identifier
framework
Detected test framework
status
passed / failed / error
total
Total test count
passed
Passed test count
failed
Failed test count
skipped
Skipped test count
duration
Execution time in seconds
failures
Array of failure details (test name, message)
coverage
Coverage metrics (if enabled)
Error Handling
Error Type
Action
No tests found
Report warning, status = passed (0 tests)
Test timeout
Report timeout, include partial results
Framework error
Log error, report as error status
Missing dependencies
Report missing test dependencies
Options
Option
Default
Description
skipTests
false
Skip execution if no tests found
allowFailures
false
Report success even if tests fail
coverage
false
Generate coverage report
timeout
300
Max execution time in seconds
parallel
true
Run test suites in parallel when possible
Critical Rules
- Run all detected test suites - do not skip suites silently
- Parse actual results - do not rely only on exit code
- Include failure details - provide actionable information for debugging
- Respect timeout - prevent hanging on infinite loops
Monitor Integration (Claude Code 2.1.98+)
MANDATORY READ: Load references/monitor_integration_pattern.md
For test suites expected to run >30 seconds, use Monitor to stream failures in real-time:
Pattern
Command
timeout_ms
Stream failures
{test_command} 2>&1 | grep --line-buffered -E 'FAIL|Error|✗|AssertionError'
timeout * 1000 (from Options)
Full output
{test_command} 2>&1
timeout * 1000
React to first failure immediately while remaining tests continue running.
Fallback: if Monitor is unavailable (Bedrock/Vertex), use Bash(run_in_background=true).
Definition of Done
- All test frameworks detected
- All test suites executed
- Results parsed and structured
- Coverage collected (if enabled)
- Results returned to orchestrator
Reference Files
- Parent:
../ln-780-bootstrap-verifier/SKILL.md
Version: 2.0.0
Last Updated: 2026-01-10