dotnet-test

GiantCroissant-Lunar's avatarfrom GiantCroissant-Lunar

Run .NET tests using dotnet CLI. Use when task involves executing unit tests, generating code coverage reports, or running benchmarks.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 13, 2025

When & Why to Use This Skill

The dotnet-test skill empowers Claude to automate the execution of .NET test suites using the dotnet CLI. It provides a comprehensive solution for running unit tests (xUnit, NUnit), generating detailed code coverage reports via coverlet, and executing performance benchmarks with BenchmarkDotNet. By integrating these capabilities, the skill ensures code reliability, identifies untested logic, and maintains performance standards within .NET development workflows.

Use Cases

  • Automated Unit Testing: Execute comprehensive test suites across multiple projects to validate code changes and prevent regressions during the development cycle.
  • Code Coverage Reporting: Generate and analyze Cobertura or HTML coverage reports to identify gaps in testing and improve overall software quality.
  • Performance Regression Testing: Run BenchmarkDotNet suites to measure execution time and resource usage, ensuring that new updates do not degrade system performance.
  • Targeted Debugging: Utilize advanced filtering to run specific tests by name or category, allowing for faster feedback loops when troubleshooting specific modules.
  • CI/CD Validation: Integrate test execution into automated workflows to ensure that only code passing all quality gates is moved forward.
namedotnet-test
version0.1.0
kindcli
descriptionRun .NET tests using dotnet CLI. Use when task involves executing unit tests, generating code coverage reports, or running benchmarks.
target[all, project, specific]
configuration[Debug, Release]
coverage['true', 'false']
project_pathstring
success'Tests pass with zero failures; coverage data generated if requested'
failure'Non-zero exit code, test failures, or coverage generation errors'

.NET Test Skill (Entry Map)

Goal: Guide agent to the exact testing procedure needed.

Quick Start (Pick One)

  • Run unit tests → references/run-unit-tests.md
  • Generate coverage report → references/generate-coverage.md
  • Run benchmarks → references/run-benchmarks.md

When to Use

  • Execute unit tests (xUnit, NUnit)
  • Generate code coverage reports with coverlet
  • Run performance benchmarks with BenchmarkDotNet
  • Validate code changes with test suites
  • Measure test execution time

NOT for: building code (dotnet-build), formatting (code-format), or static analysis (code-analyze)

Inputs & Outputs

Inputs: target (all/project/specific), configuration (Debug/Release), coverage (true/false), project_path (default: all test projects)

Outputs: Test results (pass/fail counts), coverage reports (if requested), benchmark results, exit code (0=success)

Guardrails: Operate in ./dotnet only, report failures clearly, never skip tests without permission

1. Run Unit Tests → references/run-unit-tests.md

  • Run all tests, run specific project tests, troubleshoot test failures

2. Generate Coverage Report → references/generate-coverage.md

  • Collect coverage data, generate reports (HTML/Cobertura), analyze coverage metrics

3. Run Benchmarks → references/run-benchmarks.md

  • Execute performance benchmarks, compare results, optimize based on data

Common Patterns

Run All Tests (Quick)

cd ./dotnet
dotnet test

Run Tests with Verbose Output

cd ./dotnet
dotnet test --verbosity normal

Run Specific Test Project

cd ./dotnet
dotnet test console-app.Tests/PigeonPea.Console.Tests.csproj

Run Tests with Coverage

cd ./dotnet
dotnet test --collect:"XPlat Code Coverage"

Run Tests and Generate Coverage Report

cd ./dotnet
dotnet test --collect:"XPlat Code Coverage" --results-directory ./TestResults
# Coverage file: ./TestResults/{guid}/coverage.cobertura.xml

Filter Tests by Name

cd ./dotnet
dotnet test --filter "FullyQualifiedName~FrameTests"

Filter Tests by Category

cd ./dotnet
dotnet test --filter "Category=Unit"

Run Tests in Release Configuration

cd ./dotnet
dotnet test --configuration Release

Run Benchmarks

cd ./dotnet/benchmarks
dotnet run -c Release

Troubleshooting

Tests fail: Check test output for assertion failures. See references/run-unit-tests.md for debugging.

Coverage not generated: Ensure coverlet.collector is installed. See references/generate-coverage.md.

Benchmarks fail to run: Use Release configuration. See references/run-benchmarks.md.

Slow test execution: Filter tests, run in parallel, or use --no-build after building.

Test discovery fails: Check project references, ensure test framework packages are installed.

Success Indicators

Passed!  - Failed:     0, Passed:    42, Skipped:     0, Total:    42

Test artifacts in: ./dotnet/TestResults/

Coverage report in: ./dotnet/TestResults/coverage.cobertura.xml

Integration

Before testing: dotnet-build (ensure code is built) After testing: code-analyze (static analysis), code-review (quality checks)

Test Frameworks

This repository uses:

  • xUnit for unit tests (console-app.Tests, shared-app.Tests, windows-app.Tests)
  • coverlet.collector for code coverage
  • BenchmarkDotNet for performance benchmarks