dotnet avatar

Test Smell Detection

If you need a citable, research-grounded audit of test code, this one maps every finding to a named smell from the testsmells.org 19-smell catalog, things like Assertion Roulette, Mystery Guest, Eager Test, and Sleepy Test, with a severity ranking behind each. It covers a wide spread of ecosystems (.NET, Python, JS/TS, Java, Go, Ruby, Rust, Swift, Kotlin, PowerShell, C++), and the calibration rules are thoughtful: it won't flag parametrized tests as Conditional Test Logic or call a deliberate integration test a smell just for touching real resources. The flip side is that it's deliberately narrow. For a quick pragmatic review, the test-anti-patterns skill is the better fit, and it won't write or run tests for you. Reach for this one when a reviewer or paper needs formal smell names rather than general advice.

skills.sh installs
4.1K
GitHub stars
5.9K
last updated
Aug 1, 2026

Install

$ npx -y skills add dotnet/skills --skill test-smell-detection --agent claude-code

Installs into .claude/skills of the current project.

Files

Test Smell Detection

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-extensions skill 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.

Why Test Smells Matter

Test smells erode confidence in a test suite and inflate maintenance costs:

Sponsors

Details

Repository
github.com/dotnet/skills
Categories
Testing & QA, Documentation, AI & Agent Building, Data Science & ML, Python, Rust, Mobile Development, Java & JVM, .NET & C#
License
MIT
First seen
Aug 2, 2026

More from dotnet/skills

All 102
1dotnet avatartest-taggingdotnet/skillsAnalyzes test suites in any language and tags each test with standardized traits (positive, negative, critical-path, boundary, smoke, regression, integration, p4Kskills.sh installs
2giuseppe-trisciuoglio avatarlangchain4j-testing-strategiesgiuseppe-trisciuoglio/developer-kitProvides unit test, integration test, and mock AI patterns for LangChain4j applications. Creates mock LLM responses, tests retrieval chains, validates RAG workf3.8Kskills.sh installs
3langgenius avatarfrontend-testinglanggenius/difyUse when writing or changing Vitest or React Testing Library tests under `web/` or `packages/dify-ui/`, or when the user explicitly requests frontend test strat3.8Kskills.sh installs
4forcedotcom avatartesting-agentforceforcedotcom/sf-skillsWrite, run, and analyze structured test suites for Agentforce agents. TRIGGER when: user writes or modifies test spec YAML (AiEvaluationDefinition); runs sf age3.6Kskills.sh installs
5onmax avatarvitestonmax/nuxt-skillsUse when writing unit/integration tests for Vite projects - configure vitest.config.ts, write test suites with describe/it, create mock implementations with vi.3.2Kskills.sh installs
6browserbase avatarui-testbrowserbase/skillsAI-powered adversarial UI testing via the browse CLI. Analyzes git diffs to test only what changed, or explores the full app to find bugs. Tests functional corr3.1Kskills.sh installs