Skills

Exp Test Maintainability

Detects duplicate boilerplate, copy-paste tests, and structural maintainability issues...

Install

npx skills add dotnet/skills --skill exp-test-maintainability -g -a claude-code -y
Repository
dotnet/skills5.8k
Category
Testing
Updated
3d ago
License
MIT
Context cost
Mediumabout 2,246 tokens
Runs scripts
No, instructions only

What it does

Detects duplicate boilerplate, copy-paste tests, and structural maintainability issues across .NET test suites. Use when the user asks to reduce repetition, consolidate similar test methods, convert copy-paste tests to data-driven parameterized tests, suggest a better test structure, or identify refactoring opportunities. Identifies repeated construction, assertion patterns, copy-paste methods convertible to DataRow/Theory/TestCase, redundant setup/teardown, and shared infrastructure. Produces an analysis report with concrete before/after suggestions. Works with MSTest, xUnit, NUnit, and TUnit. DO NOT USE FOR: writing new tests (use writing-mstest-tests), reviewing test quality or anti-patterns (use test-anti-patterns), or deep mock auditing (use exp-mock-usage-analysis).

Test Maintainability Assessment

Analyze .NET test code for maintainability issues: duplicated boilerplate, copy-paste test methods, and structural repetition across test methods and classes. Produce a report of refactoring opportunities with concrete before/after suggestions. The goal is analysis only, do not modify any files.

When to Use

  • User asks to find duplicated code or boilerplate in tests
  • User wants to know where test code can be DRY-ed up
  • User asks to reduce test duplication, improve test readability, or clean up test boilerplate
  • User asks for refactoring opportunities in a test suite
  • User wants to identify shared setup or teardown candidates
  • User asks "what patterns repeat across my tests?"
  • User wants to centralize test data, introduce builders or helpers

When Not to Use

  • User wants to write new tests from scratch (use writing-mstest-tests)
  • User wants to detect anti-patterns or code smells (use test-anti-patterns)
  • User wants to actually perform the refactoring (help them directly, this skill only analyzes)

Inputs

InputRequiredDescription
Test codeYesOne or more test files or a test project directory to analyze
Production codeNoThe code under test, for context on what abstractions might help
ScopeNoWhether to analyze within a single class or across multiple classes

Workflow

Step 1: Gather the test code

Read all test files the user provides or references. If the user points to a directory or project, scan for all test files using these framework markers:

FrameworkTest class markersTest method markers
MSTest[TestClass][TestMethod], [DataTestMethod]
xUnit(none, convention-based)[Fact], [Theory]
NUnit[TestFixture][Test], [TestCase], [TestCaseSource]
TUnit(none, convention-based)[Test]
Read the whole SKILL.md on GitHub

More in Testing