.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
Navigation
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
Related
./dotnet/README.md- Project structure./dotnet/ARCHITECTURE.md- Architecture.pre-commit-config.yaml- Pre-commit hooksdotnet-buildskill - Build skill