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

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

  1. Check workflow logs
  2. Download coverage artifacts
  3. Review HTML report
  4. 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

![Coverage](docs/badges/coverage.svg)

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

See Also