Skip to content
13 changes: 8 additions & 5 deletions plugins/dotnet-test/agents/test-quality-auditor.agent.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
---
name: test-quality-auditor
description: >-
Audits .NET test suite quality: assertion depth, test smells, anti-patterns,
mock usage, test gaps, maintainability, coverage risk, and test tagging.
Use when asked to review test quality, audit a test suite, find weak tests,
check test health, or run a comprehensive test quality assessment. Routes to
specialized analysis skills based on user intent.
Runs multi-skill audit pipelines for comprehensive .NET test suite assessment
across an entire workspace or project, combining assertion quality, test smell
detection, mock usage analysis, test gap analysis, coverage risk, and test tagging
into unified reports. Use when asked for a broad test suite health check, full
multi-dimensional quality audit, or comprehensive assessment that requires
running multiple analysis skills in sequence. Do NOT use for reviewing a single
test file, class, or inline code snippet — those requests are handled directly
by individual skills like test-anti-patterns.
tools: ['read', 'search', 'edit', 'terminal', 'skill']
user-invokable: true
disable-model-invocation: false
Expand Down
2 changes: 1 addition & 1 deletion plugins/dotnet-test/skills/test-anti-patterns/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: test-anti-patterns
description: "Quick pragmatic review of .NET test code for anti-patterns that undermine reliability and diagnostic value. Use when asked to review tests, find test problems, check test quality, or audit tests for common mistakes. Catches assertion gaps, flakiness indicators, over-mocking, naming issues, and structural problems with actionable fixes. Use for periodic test code reviews and PR feedback. For a deep formal audit based on academic test smell taxonomy, use exp-test-smell-detection instead. Works with MSTest, xUnit, NUnit, and TUnit."
description: "Quick pragmatic review of .NET test code for anti-patterns that undermine reliability and diagnostic value. Use when asked to review test code, find test problems, check test quality, audit tests for common mistakes, investigate flaky tests, find test repetition or duplication, or when tests pass but don't actually verify anything. Catches assertion gaps, swallowed exceptions, always-true assertions, flakiness indicators, test coupling, over-mocking, naming issues, magic values, duplicate tests, and structural problems with actionable severity-ranked fixes. Use for periodic test code reviews, inline code snippets, and PR feedback. For a deep formal audit based on academic test smell taxonomy, use exp-test-smell-detection instead. Works with MSTest, xUnit, NUnit, and TUnit."
---

# Test Anti-Pattern Detection
Expand Down
2 changes: 1 addition & 1 deletion plugins/dotnet-test/skills/writing-mstest-tests/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: writing-mstest-tests
description: "Best practices for writing MSTest 3.x/4.x unit tests. Use when the user needs to write, improve, fix, or review MSTest tests, including modern assertions, data-driven tests, test lifecycle, and common anti-patterns. Also use when fixing test issues like swapped Assert.AreEqual arguments, incorrect assertion usage, or modernizing legacy test code. Covers MSTest.Sdk, sealed classes, Assert.Throws, DynamicData with ValueTuples, TestContext, and conditional execution."
description: "Best practices for writing new MSTest 3.x/4.x unit tests. Use when the user needs to write, create, or implement new MSTest tests, or fix specific broken test code like swapped Assert.AreEqual arguments, incorrect assertion usage, or modernizing legacy test code. Covers modern assertions, data-driven tests, test lifecycle, MSTest.Sdk, sealed classes, Assert.Throws, DynamicData with ValueTuples, TestContext, and conditional execution. Do NOT use for reviewing or auditing existing test quality or finding anti-patterns — use test-anti-patterns instead."
Comment thread
Evangelink marked this conversation as resolved.
Outdated
---

# Writing MSTest Tests
Expand Down