Files
leptos-shadcn-ui/docs/testing/coverage-quick-reference.md
Ubuntu 9d10b97571 drover: task-1767765269828955016
Task: Add test coverage reporting
2026-01-10 07:04:56 +00:00

192 lines
3.6 KiB
Markdown

# Coverage Reporting Quick Reference
Quick reference guide for common coverage reporting tasks.
## Installation
```bash
cargo install cargo-llvm-cov
```
## Common Commands
### Generate Coverage Reports
```bash
# All formats (HTML, JSON, LCov)
make coverage
# HTML only (opens in browser)
make coverage-html
# Terminal summary
make coverage-terminal
# JSON for CI/CD
make coverage-json
```
### Component Coverage
```bash
# Specific component
make coverage-component COMPONENT=button
# Multiple components
./scripts/generate_coverage_report.sh --package leptos-shadcn-button --package leptos-shadcn-input
```
### Verification
```bash
# Check if coverage meets threshold (95%)
make coverage-verify
# Custom threshold
./scripts/generate_coverage_report.sh --fail-under 90
```
### CI/CD
```bash
# CI mode (optimized for pipelines)
make coverage-ci
# Generate badges
make coverage-badge
# Full report with trends
make coverage-full
```
## File Locations
| File/Directory | Purpose |
|----------------|---------|
| `.coverage-rules.toml` | Coverage thresholds and quality gates |
| `.cargo/config.toml` | Coverage environment variables |
| `scripts/generate_coverage_report.sh` | Shell script for coverage generation |
| `scripts/coverage_reporter.py` | Python script for coverage analysis |
| `coverage-reports/` | Generated coverage reports |
| `coverage-reports/html/` | HTML coverage reports |
| `coverage-reports/badges/` | Coverage badges |
| `docs/testing/coverage-reporting.md` | Full documentation |
## Thresholds
- **Line Coverage**: 95% (minimum)
- **Branch Coverage**: 90% (minimum)
- **Function Coverage**: 100% (minimum)
## Report Formats
| Format | Location | Use Case |
|--------|----------|----------|
| HTML | `coverage-reports/html/index.html` | Interactive viewing |
| JSON | `coverage-reports/coverage.json` | CI/CD integration |
| LCov | `coverage-reports/coverage.lcov` | Codecov, other services |
| Terminal | stdout | Quick checks |
## CI/CD Integration
### GitHub Actions
Automatic on:
- Pull requests
- Pushes to main/develop
- Manual workflow dispatch
Features:
- PR comments with coverage summary
- Fails if coverage below threshold
- Uploads reports as artifacts
- Updates coverage badges
### Local Pre-commit Hook
```bash
# Install
make install-git-hooks
# Manual check
make coverage-verify
```
## Troubleshooting
### Low Coverage
```bash
# Check what's being tested
cargo test --workspace -- --list
# Use llvm-cov for comprehensive coverage
./scripts/generate_coverage_report.sh --tool llvm-cov
```
### Missing Reports
```bash
# Clean and regenerate
make clean
rm -rf coverage-reports/
make coverage
```
### CI Failures
1. Check workflow logs
2. Download coverage artifacts
3. Review HTML report
4. Compare with baseline
## Advanced Usage
### Custom Output Directory
```bash
./scripts/generate_coverage_report.sh --output-dir my-reports
```
### Specific Coverage Tool
```bash
./scripts/generate_coverage_report.sh --tool llvm-cov
./scripts/generate_coverage_report.sh --tool tarpaulin
```
### Trend Analysis
```bash
python3 scripts/coverage_reporter.py --trend
```
## Badge in README
```markdown
![Coverage](docs/badges/coverage.svg)
```
## Help
```bash
./scripts/generate_coverage_report.sh --help
python3 scripts/coverage_reporter.py --help
make help # Show all make targets
```
## Environment Variables
```bash
export COVERAGE_MINIMUM_LINE_COVERAGE=95
export COVERAGE_MINIMUM_BRANCH_COVERAGE=90
export COVERAGE_MINIMUM_FUNCTION_COVERAGE=100
export CARGO_INCREMENTAL=0
```
## See Also
- [Full Documentation](coverage-reporting.md)
- [Testing Guide](testing-guide.md)
- [CI/CD Configuration](../ci/ci-configuration.md)