Run tests for a Photino.NET project with filter patterns, coverage collection, and frontend type checking
From photinonpx claudepluginhub standardbeagle/standardbeagle-tools --plugin photinoRun tests for a Photino.NET application. Supports filtering by class, method, category, and combined patterns, plus coverage collection and frontend type checking.
Find the test project:
# Find test csproj files
find . -name "*.Tests.csproj" -o -name "*.Test.csproj" | head -5
# Or check the solution
dotnet sln list 2>/dev/null | grep -i test
dotnet test
# By class name
dotnet test --filter "FullyQualifiedName~MessageRouterTests"
# By method name
dotnet test --filter "FullyQualifiedName~ExecuteAsync_SimpleCommand"
# By trait/category
dotnet test --filter "Category=Integration"
# Exclude slow tests
dotnet test --filter "Category!=Integration"
# Combined: integration tests in a specific class
dotnet test --filter "Category=Integration&FullyQualifiedName~PowerShell"
# By namespace
dotnet test --filter "FullyQualifiedName~MyApp.Tests.PowerShell"
# Show individual test results
dotnet test -v normal
# Show detailed output including test names
dotnet test --logger "console;verbosity=detailed"
# Run with coverage collection
dotnet test --collect:"XPlat Code Coverage"
# Find the coverage report
find . -name "coverage.cobertura.xml" -path "*/TestResults/*"
Generate an HTML report:
# Install report generator (one-time)
dotnet tool install -g dotnet-reportgenerator-globaltool
# Generate HTML report
reportgenerator \
-reports:"**/TestResults/*/coverage.cobertura.xml" \
-targetdir:"coverage-report" \
-reporttypes:Html
Run Svelte/TypeScript type checks:
# Navigate to frontend project
cd <frontend-path>
# Run type checker
pnpm run check
# Typically: svelte-check --tsconfig ./tsconfig.json
Summarize:
| Filter | Command |
|---|---|
| All tests | dotnet test |
| One class | dotnet test --filter "FullyQualifiedName~ClassName" |
| One method | dotnet test --filter "FullyQualifiedName~MethodName" |
| Category | dotnet test --filter "Category=Integration" |
| Exclude category | dotnet test --filter "Category!=Integration" |
| Combined | dotnet test --filter "Category=Integration&FullyQualifiedName~PowerShell" |
| Fast only | dotnet test --filter "Category!=Integration&Category!=Live" |
[Trait("Environment", "Interactive")] and skip in CI.TaskCompletionSource with timeouts.IClassFixture<> to share sessions across tests in a class.dotnet test — they use the Node.js toolchain.