Bun Test Coverage
SkillAI & modelsUse for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Bun Test Coverage skill
What this skill tells your AI
The instructions your AI receives, as published by secondsky/claude-skills in plugins/bun/skills/bun-test-coverage/SKILL.md and read by ahel’s review.
Bun has built-in code coverage reporting without additional dependencies.
Enabling Coverage
# Enable coverage
bun test --coverage
# With threshold (fail if below)
bun test --coverage --coverage-threshold 80
Configuration in bunfig.toml
[test]
coverage = true
coverageThreshold = 0.8 # 80% minimum
coverageDir = "./coverage"
# Patterns to ignore
coverageSkipTestFiles = true
Coverage Output
------------------|---------|---------|-------------------
File | % Funcs | % Lines | Uncovered Line #s
------------------|---------|---------|-------------------
All files | 85.71 | 89.23 |
src/index.ts | 100.00 | 100.00 |
src/utils.ts | 75.00 | 82.35 | 23-25, 41-43
src/api.ts | 80.00 | 85.00 | 67, 89-92
------------------|---------|---------|-------------------
Coverage Reporters
# Default console output
bun test --coverage
# Generate lcov report
bun test --coverage --coverage-reporter=lcov
# Multiple reporters
bun test --coverage --coverage-reporter=text --coverage-reporter=lcov
Available Reporters
| Reporter | Output |
|---|---|
text | Console table (default) |
lcov | coverage/lcov.info for CI tools |
json | coverage/coverage.json |
Coverage Thresholds
Set minimum coverage requirements:
# Fail if coverage < 80%
bun test --coverage --coverage-threshold 80
# Per-metric thresholds in bunfig.toml
[test]
coverage = true
coverageThreshold = {
lines = 80,
functions = 75,
branches = 70
}
Excluding Files
[test]
coverage = true
# Skip test files from coverage
coverageSkipTestFiles = true
# Patterns to exclude
coverageIgnore = [
"**/*.test.ts",
"**/fixtures/**",
"**/mocks/**"
]
CI Integration
GitHub Actions
- name: Run tests with coverage
run: bun test --coverage --coverage-reporter=lcov
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage/lcov.info
Output Directory
# Custom output directory
bun test --coverage --coverage-dir=./reports/coverage
Programmatic Coverage
import { test, expect } from "bun:test";
// Get coverage data programmatically
const coverage = Bun.coverage;
// Access after tests complete
process.on("exit", () => {
console.log(coverage.getCoverageData());
});
Common Errors
| Error | Cause | Fix |
|---|---|---|
Coverage threshold not met | Coverage below threshold | Increase test coverage |
No coverage data | Files not executed | Check test includes file |
lcov not found | Missing reporter | Add --coverage-reporter=lcov |
Best Practices
- Set realistic thresholds - Start at 60%, increase gradually
- Exclude generated files - Mock files, type definitions
- Focus on critical paths - Business logic over boilerplate
- Run in CI - Prevent coverage regression
When to Load References
Load references/reporters.md when:
- Custom reporter configuration
- CI/CD integration details
- Codecov/Coveralls setup
Signals
- GitHub stars
- 217
- Forks
- 31
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
bun-test-coverage- Source
- github.com/secondsky/claude-skills