bun-test-coverage — скилл для Claude Code: покрытие тестов в Bun
Скилл для работы с покрытием тестов в Bun: флаг --coverage, отчёты lcov, пороги и запуск в CI. Пригодится, когда тесты уже есть, а процент покрытия надо видеть и держать.
npx skills add secondsky/claude-skills --skill bun-test-coverage -a claude-codeЧто делает bun-test-coverage
Скилл описывает встроенный в Bun сбор покрытия — без сторонних зависимостей. Внутри — команды bun test --coverage, настройки в bunfig.toml и разбор вывода: таблица с процентами по функциям и строкам плюс номера непокрытых строк.
Отдельно разобраны репортёры. text даёт таблицу в консоль, lcov кладёт coverage/lcov.info для CI-инструментов, json — coverage/coverage.json. Пороги задаются флагом --coverage-threshold или по метрикам в bunfig.toml: lines, functions, branches. Есть и исключения файлов через coverageIgnore.
Для CI приведён пример GitHub Actions с загрузкой lcov в Codecov. Учтите: если в bunfig.toml не включён coverage = true и не добавлен --coverage-reporter=lcov, отчёта для CI просто не появится — это повод проверить конфиг до первого прогона пайплайна. Советует начать с порога 60% и поднимать постепенно.
Какие задачи решает
- включить сбор покрытия в Bun без лишних пакетов
- получить lcov-отчёт для загрузки в Codecov
- задать минимальный порог покрытия и ронять сборку при его падении
- исключить тестовые файлы и фикстуры из подсчёта
- найти непокрытые строки по номерам в таблице
Примеры запросов агенту
- прогони тесты с покрытием и покажи, какие строки не покрыты
- настрой bunfig.toml: порог 80% по строкам и lcov-репортёр
- добавь в GitHub Actions шаг с покрытием и загрузкой lcov в Codecov
Как установить bun-test-coverage
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-test-coverage -a claude-code2Вручную: положить файлы
~/.claude/skills/bun-test-coverage/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/bun-test-coverage/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-test-coverage -a codex2Вручную: положить файлы
.agents/skills/bun-test-coverage/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-test-coverage -a cursor2Вручную: положить файлы
.cursor/skills/bun-test-coverage/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install secondsky/claude-skills bun-test-coverage2Вручную: положить файлы
.github/skills/bun-test-coverage/SKILL.md1Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-test-coverage -a gemini-cli2Командой платформы
gemini skills install https://github.com/secondsky/claude-skills --path plugins/bun/skills/bun-test-coverageВручную: положить файлы
.devin/skills/bun-test-coverage/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add secondsky/claude-skills --skill bun-test-coverage -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора89
Похожие
Рядом в теме «Тесты и QA»
Всё по теме «Тесты и QA» →Вопросы о bun-test-coverage
Как установить bun-test-coverage в Claude?
Выполните npx skills add secondsky/claude-skills --skill bun-test-coverage -a claude-code. После этого скилл лежит в ~/.claude/skills/bun-test-coverage/SKILL.md.
Что делает bun-test-coverage?
Помогает настроить покрытие тестов в Bun: включить --coverage, выбрать репортёры, задать пороги и подключить отчёт к CI.
Какие репортёры покрытия поддерживает Bun?
text выводит таблицу в консоль, lcov создаёт coverage/lcov.info для CI-инструментов, json — coverage/coverage.json. Можно указать несколько репортёров сразу.
Исходный текст
SKILL.md · MIT
---
name: bun-test-coverage
description: Use for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.
metadata:
version: "1.0.0"
license: MIT
---
# Bun Test Coverage
Bun has built-in code coverage reporting without additional dependencies.
## Enabling Coverage
```bash
# Enable coverage
bun test --coverage
# With threshold (fail if below)
bun test --coverage --coverage-threshold 80
```
## Configuration in bunfig.toml
```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
```bash
# 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:
```bash
# Fail if coverage < 80%
bun test --coverage --coverage-threshold 80
# Per-metric thresholds in bunfig.toml
```
```toml
[test]
coverage = true
coverageThreshold = {
lines = 80,
functions = 75,
branches = 70
}
```
## Excluding Files
```toml
[test]
coverage = true
# Skip test files from coverage
coverageSkipTestFiles = true
# Patterns to exclude
coverageIgnore = [
"**/*.test.ts",
"**/fixtures/**",
"**/mocks/**"
]
```
## CI Integration
### GitHub Actions
```yaml
- 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
```bash
# Custom output directory
bun test --coverage --coverage-dir=./reports/coverage
```
## Programmatic Coverage
```typescript
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
1. **Set realistic thresholds** - Start at 60%, increase gradually
2. **Exclude generated files** - Mock files, type definitions
3. **Focus on critical paths** - Business logic over boilerplate
4. **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
© secondsky · MIT · secondsky/claude-skills