From bun
Guides Bun test coverage setup using --coverage flag, lcov/json reporters, thresholds in bunfig.toml, file exclusions, and CI integration with GitHub Actions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bun:bun-test-coverageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Bun has built-in code coverage reporting without additional dependencies.
Bun has built-in code coverage reporting without additional dependencies.
# Enable coverage
bun test --coverage
# With threshold (fail if below)
bun test --coverage --coverage-threshold 80
[test]
coverage = true
coverageThreshold = 0.8 # 80% minimum
coverageDir = "./coverage"
# Patterns to ignore
coverageSkipTestFiles = true
------------------|---------|---------|-------------------
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
------------------|---------|---------|-------------------
# 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
| Reporter | Output |
|---|---|
text | Console table (default) |
lcov | coverage/lcov.info for CI tools |
json | coverage/coverage.json |
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
}
[test]
coverage = true
# Skip test files from coverage
coverageSkipTestFiles = true
# Patterns to exclude
coverageIgnore = [
"**/*.test.ts",
"**/fixtures/**",
"**/mocks/**"
]
- 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
# Custom output directory
bun test --coverage --coverage-dir=./reports/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());
});
| 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 |
Load references/reporters.md when:
npx claudepluginhub secondsky/claude-skills --plugin bunRuns tests using Bun's built-in test runner with optimized output like dots for quick feedback, bail on first failure, coverage, and watch mode. Reports summaries, failures, and coverage.
Checks and configures code coverage thresholds, reporters, and CI integrations like Codecov for Vitest, Jest, pytest, and Rust projects.
Queries test coverage in Python, Node.js, Rust, Go projects. Identifies uncovered areas/files, analyzes trends, and generates reports before changes or PRs.