Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/test-anti-patterns
Audits an existing test file or suite in any language for anti-patterns and quality issues — produces a severity-ranked report (Critical/Warning/Info). INVOKE whenever asked to audit or review tests, find what's wrong with a suite, judge whether tests are any good, or check for: tests that pass but verify nothing, missing assertions, swallowed exceptions, self-comparing / tautological assertions, coverage-touching tests, broad exceptions, flaky or order-dependent tests (Thread.Sleep, DateTime.No
Passed 13 of 18 test cases with the skill, and 11 of 18 without it.
and 3 more in the full report
6 fixed10 passed either way3 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
Review this test method in `StringFormatterTests.cs`: ```csharp [Fact] public void Normalize_AlreadyNormalizedString_ReturnsString() { var formatter = new StringFormatter(); var input = "hello"; var result = formatter.Normalize(input); Assert.NotEqual("OLD_VALUE", result); } ``` Why is `actual != oldValue` weak, and what expected value should the fix assert?
| Checked | Without skill | With skill |
|---|---|---|
| Identifies actual != oldValue as a weak oracle that accepts any incorrect return value | Passed | Passed |
| Recommends supplying an input requiring transformation and asserting the exact expected result value | Missed | Passed |
The instructions your model reads when the skill loads.
Quick, pragmatic analysis of test code in any supported language for anti-patterns and quality issues that undermine test reliability, maintainability, and diagnostic value.
Language-specific guidance: Call the
test-analysis-extensionsskill to discover available extension files, then read the file matching the target codebase (e.g.,extensions/dotnet.md,extensions/python.md,extensions/typescript.md,extensions/go.md). The extension file tells you which sleep / time / random / skip / setup-teardown / mystery-guest APIs to look for in that language.
code-testing-agent)Assert.AreEqual argument order in MSTest (use writing-mstest-tests)DynamicData from IEnumerable<object[]> to ValueTuple (use writing-mstest-tests)run-tests for .NET)run-tests), non-.NET coverage collection or analysis (use native tooling), project-wide .NET coverage/CRAP metrics (use coverage-analysis), or named-target .NET CRAP (use crap-score)test-gap-analysis)test-tagging)test-smell-detection)| Input | Required | Description |
|---|---|---|
| Test code | Yes | One or more test files or classes to analyze |
| Production code | No | The code under test, for context on what tests should verify |
| Specific concern | No | A focused area like "flakiness" or "naming" to narrow the review |
Identify the target codebase's language and test framework. Call the test-analysis-extensions skill and read the matching extension file. The extension file documents framework-specific anti-pattern markers — what counts as a sleep/wait, a test marker, a skip, a setup/teardown, a shared-state hot spot, and an integration boundary — so this skill stays language-neutral.
test cases passed, vs 11 / 18 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.