Bun Test Coverage
Use for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.
Specification
- Skill ID
- secondsky/claude-skills/bun-test-coverage
- Publisher
- secondsky
- Repository
- claude-skills
- Installs
- 0
- Files
- 1
- License
- MIT
- Synced
- Sep 23, 2026
How to use it
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
secondsky/claude-skills/bun-test-coverageInstalls these files- SKILL.md
What this skill tells the agent
Bun Test Coverage
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 80Configuration in bunfig.toml
[test]
coverage = true
coverageThreshold = 0.8 # 80% minimum
coverageDir = "./coverage"
# Patterns to ignore
coverageSkipTestFiles = trueCoverage 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=lcovAvailable 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.infoOutput Directory
# Custom output directory
bun test --coverage --coverage-dir=./reports/coverageProgrammatic 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
More from secondsky
Use this skill in a project
Open any RiverX project, search the Skills panel for secondsky/claude-skills/bun-test-coverage, and install it in one click.
