mirror of
https://github.com/cloud-shuttle/leptos-shadcn-ui.git
synced 2026-05-14 18:40:40 +00:00
192 lines
3.6 KiB
Markdown
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
|
|

|
|
```
|
|
|
|
## 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)
|