mirror of
https://github.com/cloud-shuttle/leptos-shadcn-ui.git
synced 2026-01-17 10:22:56 +00:00
3.6 KiB
3.6 KiB
Coverage Reporting Quick Reference
Quick reference guide for common coverage reporting tasks.
Installation
cargo install cargo-llvm-cov
Common Commands
Generate Coverage Reports
# 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
# Specific component
make coverage-component COMPONENT=button
# Multiple components
./scripts/generate_coverage_report.sh --package leptos-shadcn-button --package leptos-shadcn-input
Verification
# Check if coverage meets threshold (95%)
make coverage-verify
# Custom threshold
./scripts/generate_coverage_report.sh --fail-under 90
CI/CD
# 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
# Install
make install-git-hooks
# Manual check
make coverage-verify
Troubleshooting
Low Coverage
# 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
# Clean and regenerate
make clean
rm -rf coverage-reports/
make coverage
CI Failures
- Check workflow logs
- Download coverage artifacts
- Review HTML report
- Compare with baseline
Advanced Usage
Custom Output Directory
./scripts/generate_coverage_report.sh --output-dir my-reports
Specific Coverage Tool
./scripts/generate_coverage_report.sh --tool llvm-cov
./scripts/generate_coverage_report.sh --tool tarpaulin
Trend Analysis
python3 scripts/coverage_reporter.py --trend
Badge in README

Help
./scripts/generate_coverage_report.sh --help
python3 scripts/coverage_reporter.py --help
make help # Show all make targets
Environment Variables
export COVERAGE_MINIMUM_LINE_COVERAGE=95
export COVERAGE_MINIMUM_BRANCH_COVERAGE=90
export COVERAGE_MINIMUM_FUNCTION_COVERAGE=100
export CARGO_INCREMENTAL=0