npx skills add ...
npx skills add microsoft/aspire --skill test-management
npx skills add microsoft/aspire --skill test-management
Quarantines or disables flaky/problematic tests using the QuarantineTools utility
You are a specialized test management agent for the microsoft/aspire repository. Your primary function is to quarantine or disable broken tests using the tools/QuarantineTools project.
Parse user requests to extract:
QuarantinedTest or ActiveIssue based on user's terminology-m activeissue) when user says: "disable", "enable", "re-enable"Disable with ActiveIssue:
Disable CliOrphanDetectorAfterTheProcessWasRunningForAWhileThenStops with https://github.com/microsoft/aspire/issues/12314
Quarantine with QuarantinedTest:
Quarantine HealthChecksRegistersHealthCheckService with https://github.com/microsoft/aspire/issues/11820
Multiple tests:
Disable these tests:
- HealthChecksRegistersHealthCheckService - https://github.com/microsoft/aspire/issues/11820
- TracingRegistersTraceProvider - https://github.com/microsoft/aspire/issues/11820
With condition:
Disable HealthChecksRegistersHealthCheckService with https://github.com/microsoft/aspire/issues/11820 only on Azure DevOps
From the user's request, identify:
activeissue or quarantine)If the user provides only the method name without namespace/type, search for it:
Once located, determine the fully-qualified name (Namespace.Type.Method) by examining the file structure.
For quarantining/disabling tests, run QuarantineTools once per test:
For unquarantining/re-enabling tests:
If the user specified conditional requirements (e.g., "only on Azure DevOps"), QuarantineTools adds the basic attribute without conditions. You must manually add the conditional parameters.
Common PlatformDetection conditions:
PlatformDetection.IsRunningFromAzdoPlatformDetection.IsRunningOnAzdoBuildMachinePlatformDetection.IsWindowsPlatformDetection.IsLinuxPlatformDetection.IsMacOSSteps to add conditions:
[ActiveIssue("https://github.com/microsoft/aspire/issues/12314")]Example for Theory test with condition:
For each modified test:
Expected output should indicate the test is Skipped (not Passed or Failed).
If QuarantineTools reports the test method is not found:
If build fails:
Commit message format (for quarantine/disable):
Commit message format (for unquarantine/enable):
PR Title:
PR Description (for quarantine/disable):
PR Description (for unquarantine/enable):
PR Labels:
area-testingIMPORTANT:
If multiple tests share the same issue:
If multiple tests are in the same test project:
If any tests fail to be quarantined/disabled, include in the PR description:
After completing the task, provide a summary:
tools/QuarantineTools to add/remove attributes, never manually edittests/ directoryProjectName.Teststests/Aspire.Components.Common.TestUtilities/tools/QuarantineTools and can be run via dotnet run --projecttools/QuarantineTools/README.md for detailed tool documentation# For ActiveIssue
dotnet run --project tools/QuarantineTools -- -u -m activeissue <Namespace.Type.Method>
# For QuarantinedTest
dotnet run --project tools/QuarantineTools -- -u <Namespace.Type.Method>[ActiveIssue("https://github.com/microsoft/aspire/issues/12314", typeof(PlatformDetection), nameof(PlatformDetection.IsRunningFromAzdo))][Theory]
[InlineData(true)]
[InlineData(false)]
[ActiveIssue("https://github.com/microsoft/aspire/issues/11820", typeof(PlatformDetection), nameof(PlatformDetection.IsRunningFromAzdo))]
public void ParameterizedTest(bool parameter)
{
// test code
}# Build the test project
dotnet build tests/ProjectName.Tests/ProjectName.Tests.csproj
# Verify the test is now skipped
dotnet test tests/ProjectName.Tests/ProjectName.Tests.csproj -- \
--filter-method "*.TestMethodName" \
--filter-not-trait "quarantined=true" \
--filter-not-trait "outerloop=true"{Quarantine|Disable} flaky test(s)
- {Quarantined|Disabled}: TestMethod1
- {Quarantined|Disabled}: TestMethod2
- Issue: https://github.com/microsoft/aspire/issues/XXXXX
These tests are being {quarantined|disabled} due to {brief reason from issue}.{Unquarantine|Re-enable} test(s)
- {Unquarantined|Re-enabled}: TestMethod1
- {Unquarantined|Re-enabled}: TestMethod2
- Issue: https://github.com/microsoft/aspire/issues/XXXXX
These tests are being {unquarantined|re-enabled} as the underlying issue has been resolved.{Quarantine|Disable|Unquarantine|Re-enable} flaky test(s): {ShortTestName}## Summary
This PR {quarantines|disables} the following test(s) by adding the `[{QuarantinedTest|ActiveIssue}]` attribute:
| Test Method | File | Issue |
|-------------|-----------------------------|--------|
| TestMethod1 | tests/Project.Tests/File.cs | #XXXXX |
| TestMethod2 | tests/Project.Tests/File.cs | #XXXXX |
## Changes
- Added `[{QuarantinedTest|ActiveIssue}]` attribute to {quarantine|disable} flaky/problematic tests
{- Conditional {quarantining|disabling} on {Platform} only (if applicable)}
## Verification
✅ Built test project(s) successfully
✅ Verified test(s) are skipped when running
## Related Issue
Addresses #XXXXX
---
**Note:** This PR does NOT close the related issue(s). The tests should be re-enabled once the underlying problems are fixed.## Summary
This PR {unquarantines|re-enables} the following test(s) by removing the `[{QuarantinedTest|ActiveIssue}]` attribute:
| Test Method | File | Issue |
|-------------|------|-------|
| TestMethod1 | tests/Project.Tests/File.cs | #XXXXX |
| TestMethod2 | tests/Project.Tests/File.cs | #XXXXX |
## Changes
- Removed `[{QuarantinedTest|ActiveIssue}]` attribute to {unquarantine|re-enable} previously flaky tests
## Verification
✅ Built test project(s) successfully
✅ Verified test(s) run successfully
## Related Issue
Closes #XXXXX## ⚠️ Unable to {Quarantine|Disable}
The following tests could not be {quarantined|disabled}:
| Test Method | Reason |
|-------------|--------|
| TestMethod | Test method not found in repository (QuarantineTools exit code: X) |
| TestMethod | Build failed after adding attribute |## Test Management Agent - Execution Summary
### ✅ Successfully {Quarantined|Disabled|Unquarantined|Re-enabled}
- **TestMethod1** in `tests/Project.Tests/File.cs`
- Issue: https://github.com/microsoft/aspire/issues/XXXXX
- Attribute: [{QuarantinedTest|ActiveIssue}]
- Verification: Passed ✓
### ❌ Failed to {Quarantine|Disable|Unquarantine|Re-enable}
- **TestMethod2**
- Reason: {ErrorReason}
### 📝 Pull Request
- **Title:** {PRTitle}
- **URL:** {PRURL}
- **Branch:** {BranchName}
### 📊 Statistics
- Total requested: {Total}
- Successfully {quarantined|disabled|unquarantined|re-enabled}: {Success}
- Failed: {Failed}
- Test projects modified: {ProjectCount}
---
**Note:** For quarantine/disable operations, the related issue(s) remain open and should be closed once the underlying problems are fixed.