Install any skill in seconds. Free to start, no credit card required.
Get Started Free →managedcode/test-smell-detection
Deep-dive audit using the full testsmells.org 19-smell academic catalog for tests in any language. Every finding maps to a named, citable smell from the research literature (Assertion Roulette, Duplicate Assert, Mystery Guest, Eager Test, Sensitive Equality, Conditional Test Logic, Sleepy Test, Magic Number Test, etc.) with research-backed severity. Polyglot: .NET (MSTest/xUnit/NUnit/TUnit), Python (pytest/unittest), TS/JS (Jest/Vitest/Mocha/node:test), Java (JUnit/TestNG), Go, Ruby (RSpec/Minit
Passed 17 of 21 test cases with the skill, and 14 of 21 without it.
and 2 more in the full report
5 fixed15 passed either way3 still failing2 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 C# test method in `tests/ListTests.cs`: ```csharp [Fact] public void AllItemsHavePositiveIds() { var items = GetSampleItems(); foreach (var item in items) { Assert.True(item.Id > 0); } } ``` Is this `foreach` loop considered a High-severity Conditional Test Logic smell?
| Checked | Without skill | With skill |
|---|---|---|
| Does not flag simple foreach loops iterating over collections solely to assert properties as Conditional Test Logic. | Missed | Passed |
The instructions your model reads when the skill loads.
Deep formal audit of test code in any supported language using an academic test smell taxonomy. Detects symptoms of bad design or implementation decisions that make tests harder to understand, more fragile, less effective at catching bugs, or more expensive to maintain. Produces a severity-ranked report with specific locations and actionable fixes.
Language-specific guidance: Call the
test-analysis-extensionsskill to discover available extension files, then read the file matching the target codebase. The extension file documents test markers, sleep / time / random APIs, skip annotations, setup/teardown, mystery-guest indicators (file/database/network/env), integration markers, and language-specific calibration notes that drive the smell detectors below.
Test smells erode confidence in a test suite and inflate maintenance costs:
| Problem | Consequence |
|---|---|
| Tests with conditional logic | Some paths never execute — hidden testing gaps |
| Tests that depend on external resources | Flaky failures, slow execution, environment coupling |
| Tests that sleep to wait for results | Non-deterministic timing, slow suites, false failures |
| Tests without assertions | False confidence — coverage looks good but nothing is verified |
| Tests that call many production methods | Hard to diagnose failures, unclear what's being tested |
| Tests with magic numbers | Unreadable intent, unclear boundary conditions |
| Tests relying on ToString for comparison | Brittle to formatting changes, obscure failure messages |
| Tests with exception handling logic | Swallowed failures, tests that pass when they shouldn't |
test-anti-patterns — faster, covers the most common issues)assertion-quality)exp-test-maintainability)| Input | Required | Description |
test cases passed, vs 14 / 21 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.