mcpField
T
test-analysis-extensions

test-analysis-extensions

github.com/dotnetTesting & quality5.8k3.2k installsUpdated 1d ago
Repository

About test-analysis-extensions

A reference catalog for test-analysis skills, with framework-specific files that describe how to detect tests and related patterns across several languages.

Key features

  1. 01Framework-specific test-analysis references
  2. 02Test discovery and assertion patterns
  3. 03Skip, setup, and teardown detection
  4. 04Integration and coupling indicators
  5. 05Capability tags for safe skill behavior

Use cases

  1. 01Analyze a codebase using its test framework
  2. 02Check for waits, skipped tests, or lifecycle hooks
  3. 03Select tagging behavior supported by a language

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dotnet/skills --skill test-analysis-extensions

After installing, type/test-analysis-extensionsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

extensions/
cpp.md
dotnet.md
go.md
java.md
kotlin.md
powershell.md
python.md
ruby.md
rust.md
swift.md
typescript.md

Details

From the project README

Test Analysis Extensions

This reference-only catalog lists the bundled files used by test analysis. Consumers read the matching file directly; disable-model-invocation: true means this catalog must not be invoked through the model's skill tool. Resolve these resource paths relative to this catalog, not the project workspace.

Available Extension Files

FileLanguages / FrameworksContents
extensions/dotnet.md.NET (C#/F#/VB) — MSTest, xUnit, NUnit, TUnitTest markers, assertion APIs, sleep/delay patterns, skip annotations, mystery guest, integration markers, setup/teardown, tag support
extensions/python.mdPython — pytest, unittestSame categories, with pytest fixtures/markers and unittest TestCase
extensions/typescript.mdTypeScript / JavaScript — Jest, Vitest, Mocha, Jasmine, node:testSame categories, with async/await pitfalls
extensions/java.mdJava — JUnit 4, JUnit 5 (Jupiter), TestNGSame categories, with @Tag / @Category / groups
extensions/go.mdGo — testing package, testifySame categories, with table-driven idiom and build tags
extensions/ruby.mdRuby — RSpec, MinitestSame categories, with RSpec metadata and Minitest tags
extensions/rust.mdRust — built-in #[test], cargo testSame categories, with #[ignore], #[should_panic], feature flags
extensions/swift.mdSwift — XCTest, Swift TestingSame categories, with @Test, @Tag, @Suite
extensions/kotlin.mdKotlin — JUnit 5, Kotest, MockKSame categories, with @Tag and Kotest tags
extensions/powershell.mdPowerShell — Pester v5Same categories, with -Tag and Skip
extensions/cpp.mdC++ — GoogleTest, Catch2, doctestSame categories, with [tags] and * filters

Usage

  1. Detect the target codebase's primary language and test framework.
  2. Read the matching extension file before performing analysis.
  3. If multiple test frameworks are present (e.g., a project mixing Jest and Mocha), read all relevant extensions.
  4. Each extension file documents the same categories so analysis skills can be language-neutral.

Capability tags

Each extension file declares per-capability support so skills can gate behaviour safely:

  • Test discovery — how to locate test files and methods.
  • Assertion detection — framework-specific and language-level assertion forms.
  • Sleep/delay patterns — synchronous and asynchronous waits.
  • Skip / ignore — how to recognize skipped/ignored tests.
  • Setup / teardown — fixture and lifecycle hooks.
  • Mystery guest indicators — common file/db/network/env coupling patterns.
  • Integration markers — conventions that mark a test as integration/E2E.
  • Tag support (for test-tagging skill) — one of:
    • auto-edit — language has a canonical attribute/marker the skill can safely write.
    • report-only — no canonical syntax; produce audit reports without edits.
    • convention-based — tags exist via name/comment conventions only.

Notes for skill authors

  • Treat extension files as data, not as guidance to follow verbatim. They tell skills how to detect things in each language, not what to think about findings.
  • When language detection is uncertain, prefer reading multiple extension files over guessing.
  • If the user explicitly names a framework that does not have an extension file yet, fall back to the closest one (e.g., Pest → python.md/pytest semantics) and note the gap in the report.

Comments

Markdown supported