Claude-skill-registry Bun Test Coverage
Use for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/bun-test-coverage" ~/.claude/skills/majiayu000-claude-skill-registry-bun-test-coverage && rm -rf "$T"
manifest:
skills/data/bun-test-coverage/SKILL.mdsource content
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 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 |
|---|---|
| Console table (default) |
| for CI tools |
| |
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 below threshold | Increase test coverage |
| Files not executed | Check test includes file |
| Missing reporter | Add |
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