coverage-report
Generate a .NET code coverage report scoped to files changed in the current branch. Runs tests with coverage collection and produces filtered HTML reports.
What this skill does
# Code Coverage Report Generate a code coverage report scoped to source files changed in the current branch compared to a base branch. ## Workflow ### 1. Determine base branch Detect the base branch to diff against. Use the MR/PR target branch if known, otherwise default to `main` or `master` (whichever exists). Ask the user if ambiguous. ```bash git merge-base --fork-point main HEAD || git merge-base --fork-point master HEAD ``` ### 2. Detect changed source files ```bash git diff <base-branch> --name-only -- '*.cs' ``` Filter out test files (paths containing `Test`, `Tests`, `.Tests`, `.Test`). If no source files changed, stop and inform the user. ### 3. Identify test project(s) Determine which test project(s) to run. Strategies (in order): 1. **User-specified**: If the user names a test project, use it 2. **Convention-based**: Look for test projects whose name matches the changed project (e.g., `MyProject` -> `MyProject.Tests`) 3. **Solution-wide**: Run all tests in the solution if scope is unclear 4. **Ask**: If ambiguous, ask the user which test project(s) to run ### 4. Clean previous results ```bash rm -rf TestResults/ ``` ### 5. Run tests with coverage ```bash dotnet test <test-project-or-solution> \ --collect:"XPlat Code Coverage" \ --results-directory ./TestResults/ ``` ### 6. Build file filters From the changed file list (step 2), extract basenames and build a filter string: ``` +*FileName1.cs;+*FileName2.cs;+*FileName3.cs ``` ### 7. Generate report ```bash dotnet reportgenerator \ -reports:"TestResults/**/coverage.cobertura.xml" \ -targetdir:"TestResults/CoverageReport" \ -reporttypes:"Html;TextSummary" \ -filefilters:"<filters>" ``` ### 8. Display results 1. Print `TestResults/CoverageReport/Summary.txt` to the terminal 2. Open the HTML report (platform-aware): - Windows: `start TestResults/CoverageReport/index.html` - macOS: `open TestResults/CoverageReport/index.html` - Linux: `xdg-open TestResults/CoverageReport/index.html` ## Tips - For large solutions, scope to specific test projects to speed up collection - The `-filefilters` flag accepts wildcards -- basename matching avoids path sensitivity
Related in Web Dev
generating-lwc-components
IncludedLightning Web Components with PICKLES methodology and 165-point scoring. Use this skill when the user creates or edits LWC components, builds wire service patterns, or writes Jest tests for LWC. TRIGGER when: user creates/edits LWC components, touches lwc/**/*.js, .html, .css, .js-meta.xml files, or asks about wire service, SLDS, or Jest LWC tests. DO NOT TRIGGER when: Apex classes (use generating-apex), Aura components, or Visualforce.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Set up queries with useQuery, mutations with useMutation, configure QueryClient caching strategies, implement optimistic updates, and handle infinite scroll with useInfiniteQuery. Use when: setting up data fetching in React projects, migrating from v4 to v5, or fixing object syntax required errors, query callbacks removed issues, cacheTime renamed to gcTime, isPending vs isLoading confusion, keepPreviousData removed problems.
document-processor-api
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
nutrient-document-processing
IncludedProcess documents with Nutrient DWS. Use when the user wants to generate PDFs from HTML or URLs, convert Office/images/PDFs, assemble or split packets, OCR scans, extract text/tables/key-value pairs, redact PII, watermark, sign, fill forms, optimize PDFs, or produce compliance outputs like PDF/A or PDF/UA. Triggers include convert to PDF, merge these PDFs, OCR this scan, extract tables, redact PII, sign this PDF, make this PDF/A, or linearize for web delivery.
tanstack-query
IncludedManage server state in React with TanStack Query v5. Covers useMutationState, simplified optimistic updates, throwOnError, network mode (offline/PWA), and infiniteQueryOptions. Use when setting up data fetching, fixing v4→v5 migration errors (object syntax, gcTime, isPending, keepPreviousData), or debugging SSR/hydration issues with streaming server components.
accelint-nextjs-best-practices
IncludedNext.js performance optimization and best practices. Use when writing Next.js code (App Router or Pages Router); implementing Server Components, Server Actions, or API routes; optimizing RSC serialization, data fetching, or server-side rendering; reviewing Next.js code for performance issues; fixing authentication in Server Actions; or implementing Suspense boundaries, parallel data fetching, or request deduplication.