test-analysis-extensions — скилл для Claude Code: справочник
Справочный каталог файлов с таблицами для анализа тестов: маркеры, ассерты, пропуски, паттерны ожиданий. Агент читает нужный файл под язык проекта.
npx skills add dotnet/skills --skill test-analysis-extensions -a claude-codeЧто делает test-analysis-extensions
Скилл не запускают вручную. Он лежит рядом с анализирующими скиллами (assertion-quality, test-anti-patterns, test-gap-analysis, test-smell-detection, test-tagging) и служит оглавлением: агент определяет язык и фреймворк проекта, открывает подходящий файл из extensions/ и берёт оттуда таблицы поиска.
Внутри одиннадцать файлов: dotnet.md для MSTest, xUnit, NUnit и TUnit, python.md для pytest и unittest, typescript.md для Jest, Vitest, Mocha, Jasmine и node:test, java.md для JUnit 4, JUnit 5 и TestNG, плюс Go, Ruby, Rust, Swift, Kotlin, PowerShell и C++. В каждом разобраны одни и те же категории: как искать тесты, как выглядят ассерты, где искать sleep и delay, как помечены пропущенные тесты, хуки setup и teardown, признаки mystery guest, маркеры интеграционных тестов.
Для скилла test-tagging каждый файл объявляет режим работы с тегами: auto-edit, если в языке есть канонический атрибут, который можно проставить, report-only, если такого синтаксиса нет и остаётся только отчёт, или convention-based, когда теги живут в именах и комментариях. Пути к файлам считаются относительно самого каталога, а не рабочей папки проекта. Если в проекте смешаны Jest и Mocha, читать придётся оба файла. Когда язык определён неточно, лучше открыть несколько расширений, чем гадать.
Какие задачи решает
- найти таблицу ассертов для конкретного тест-фреймворка
- отличить интеграционный тест от юнит-теста по маркерам
- распознать пропущенные и отложенные тесты в чужом коде
- увидеть sleep и delay в асинхронных тестах
- понять, можно ли проставить теги автоматически или только отчётом
Примеры запросов агенту
- проанализируй тесты в этом проекте на анти-паттерны
- проверь качество ассертов в тестах на pytest
- проставь теги тестам, если фреймворк это поддерживает
Как установить test-analysis-extensions
1Через Skills CLI (Vercel)
npx skills add dotnet/skills --skill test-analysis-extensions -a claude-code2Вручную: положить файлы
~/.claude/skills/test-analysis-extensions/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/test-analysis-extensions/
1Через Skills CLI (Vercel)
npx skills add dotnet/skills --skill test-analysis-extensions -a codex2Вручную: положить файлы
.agents/skills/test-analysis-extensions/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dotnet/skills --skill test-analysis-extensions -a cursor2Вручную: положить файлы
.cursor/skills/test-analysis-extensions/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dotnet/skills test-analysis-extensions2Вручную: положить файлы
.github/skills/test-analysis-extensions/SKILL.md1Через Skills CLI (Vercel)
npx skills add dotnet/skills --skill test-analysis-extensions -a gemini-cli2Командой платформы
gemini skills install https://github.com/dotnet/skills --path plugins/dotnet-test/skills/test-analysis-extensionsВручную: положить файлы
.devin/skills/test-analysis-extensions/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dotnet/skills --skill test-analysis-extensions -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора101
Похожие
Рядом в теме «Тесты и QA»
Всё по теме «Тесты и QA» →Вопросы о test-analysis-extensions
Как установить test-analysis-extensions в Claude?
Выполните npx skills add dotnet/skills --skill test-analysis-extensions -a claude-code. После этого файл скилла окажется по пути ~/.claude/skills/test-analysis-extensions/SKILL.md.
Что делает test-analysis-extensions?
Это каталог справочных файлов по языкам и тест-фреймворкам. Анализирующие скиллы читают из него таблицы поиска: маркеры тестов, ассерты, пропуски, sleep-паттерны, хуки setup и teardown.
Можно ли вызвать этот скилл вручную?
Нет. У него стоит disable-model-invocation: true, и он помечен как reference-only. Файлы из extensions/ читают quality agent и скиллы анализа, которым нужны таблицы под конкретный фреймворк.
Исходный текст
SKILL.md · MIT
--- name: test-analysis-extensions description: >- Provides file paths to language-specific reference files for the test ANALYSIS skills (assertion-quality, test-anti-patterns, test-gap-analysis, test-smell-detection, test-tagging). Read this catalog to discover available extension files (e.g., dotnet.md for .NET/MSTest/xUnit/NUnit/TUnit, python.md for pytest/unittest, typescript.md for Jest/Vitest/Mocha, java.md for JUnit/TestNG, etc.). Do not invoke this reference-only skill — its bundled files are read by the quality agent and analysis skills needing framework-specific lookup tables (test markers, assertion APIs, skip annotations, sleep patterns, mystery guest indicators, integration markers, setup/teardown, tag-support capability). user-invocable: false disable-model-invocation: true license: MIT --- # 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 | File | Languages / Frameworks | Contents | |------|------------------------|----------| | [extensions/dotnet.md](extensions/dotnet.md) | .NET (C#/F#/VB) — MSTest, xUnit, NUnit, TUnit | Test markers, assertion APIs, sleep/delay patterns, skip annotations, mystery guest, integration markers, setup/teardown, tag support | | [extensions/python.md](extensions/python.md) | Python — pytest, unittest | Same categories, with pytest fixtures/markers and unittest TestCase | | [extensions/typescript.md](extensions/typescript.md) | TypeScript / JavaScript — Jest, Vitest, Mocha, Jasmine, node:test | Same categories, with async/await pitfalls | | [extensions/java.md](extensions/java.md) | Java — JUnit 4, JUnit 5 (Jupiter), TestNG | Same categories, with `@Tag` / `@Category` / groups | | [extensions/go.md](extensions/go.md) | Go — `testing` package, testify | Same categories, with table-driven idiom and build tags | | [extensions/ruby.md](extensions/ruby.md) | Ruby — RSpec, Minitest | Same categories, with RSpec metadata and Minitest tags | | [extensions/rust.md](extensions/rust.md) | Rust — built-in `#[test]`, `cargo test` | Same categories, with `#[ignore]`, `#[should_panic]`, feature flags | | [extensions/swift.md](extensions/swift.md) | Swift — XCTest, Swift Testing | Same categories, with `@Test`, `@Tag`, `@Suite` | | [extensions/kotlin.md](extensions/kotlin.md) | Kotlin — JUnit 5, Kotest, MockK | Same categories, with `@Tag` and Kotest tags | | [extensions/powershell.md](extensions/powershell.md) | PowerShell — Pester v5 | Same categories, with `-Tag` and `Skip` | | [extensions/cpp.md](extensions/cpp.md) | C++ — GoogleTest, Catch2, doctest | Same 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.
© dotnet · MIT · dotnet/skills