Agent skill

Edt MCP Yaxunit

by DitriXNew in DitriXNew/EDT-MCP

How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP runyaxunittests / debugyaxunittests tools.

AGPL-3.0Auto-check passedTesting & QA

Install Edt MCP Yaxunit

skills CLI
$ npx skills add DitriXNew/EDT-MCP --skill edt-mcp-yaxunit -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DitriXNew/EDT-MCP edt-mcp-yaxunit --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/DitriXNew/EDT-MCP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/edt-mcp-yaxunit .claude/skills/edt-mcp-yaxunit && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
edt-mcp-yaxunit
GitHub stars
296
Token cost
~2.5k tokens
SKILL.md length
906 words
Files
1
Skills in repo
24
Repo updated
First seen
Licence
AGPL-3.0

At a glance

How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP runyaxunittests / debugyaxunittests tools.

  • Works in 3 steps: EDT plugin — install into EDT. → Engine into the infobase — load… → Test extension — create an EDT…
  • Writing/running YAXUnit tests
  • SKILL.md covers Three pieces — without all…, Setup (one-time), Test-module structure and Asserts —…, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Edt MCP Yaxunit is an agent skill from DitriXNew/EDT-MCP. How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP runyaxunittests / debugyaxunittests tools. Covers the three-piece setup (EDT plugin = IDE runner, YAxUnit.cfe engine in the infobase, a test extension that holds the tests), the test-module structure (ИсполняемыеСценарии + ЮТест asserts), and the run gotchas for this repo. Use when writing/running YAXUnit tests or setting YAXUnit up.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Unit testing and MCP servers. It works with Model Context Protocol. The licence is AGPL-3.0.

When your agent uses it

  • Writing/running YAXUnit tests
  • Setting YAXUnit up

Example prompts

  • “/edt-mcp-yaxunit”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. EDT plugin — install into EDT.
  2. Engine into the infobase — load YAxUnit.cfe (releases) as an extension: Designer/EDT → Extensions → Add → pick the .cfe; in the extension…
  3. Test extension — create an EDT configuration-extension project (File → New → Configuration Extension Project) extending the target…

What it can do on your machine

Read from SKILL.md and the folder at commit 6d18531. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bsl).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • bia-technologies.github.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Edt MCP Yaxunit loads about 2.5k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 906 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from DitriXNew/EDT-MCP at commit 6d18531, republished under its AGPL-3.0 licence (© DitriXNew). 906 words, ~2,532 tokens.

Download SKILL.mdSave it as .claude/skills/edt-mcp-yaxunit/SKILL.md (or your agent's skills folder).
name
edt-mcp-yaxunit
description
How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP run_yaxunit_tests / debug_yaxunit_tests tools. Covers the three-piece setup (EDT plugin = IDE runner, YAxUnit.cfe engine in the infobase, a test extension that holds the tests), the test-module structure (ИсполняемыеСценарии + ЮТест asserts), and the run gotchas for this repo. Use when writing/running YAXUnit tests or setting YAXUnit up.

EDT-MCP — YAXUnit (1C unit tests)

YAXUnit is a unit-testing framework for 1C:Enterprise (Apache-2.0, bia-technologies). Tests are written in BSL, run by the platform via the RunUnitTests launch parameter, and produce a JUnit report. In this repo they run headless through the MCP tools run_yaxunit_tests / debug_yaxunit_tests.

Three pieces — without all three the tests do NOT run

PieceWhat it isWhere it lives
EDT plugin (edt-test-runner)the IDE runner: "Run As… YAXUnit", the test tree, the green/red bar. It does not execute tests itself.the EDT install (Help → Install New Software)
Engine YAxUnit.cfethe test executor + the assertion library (ЮТест/ЮТТесты) + the RunUnitTests handlerloaded as an extension into the infobase
Test extensionyour modules with the testsan EDT configuration-extension project in the workspace, deployed into the same infobase

Common mistake: install only the EDT plugin and expect run_yaxunit_tests to work. Without YAxUnit.cfe in the infobase the ЮТест engine doesn't resolve at runtime — the run gives an empty/error result.

Setup (one-time)

  1. EDT plugin — install into EDT.
  2. Engine into the infobase — load YAxUnit.cfe (releases) as an extension: Designer/EDT → Extensions → Add → pick the .cfe; in the extension properties clear "Safe mode" and "Protection from dangerous actions" (otherwise the ЮТест export methods are blocked). The configuration does NOT need to be taken off support. The MCP server has NO "attach extension" tool — a human does this (or DESIGNER /LoadCfg -Extension).
  3. Test extension — create an EDT configuration-extension project (File → New → Configuration Extension Project) extending the target configuration.
    • Extension name = tests — then run_yaxunit_tests with no filter finds it via the default filter.extensions=["tests"]. Any other name means always passing extensions=["name"].
    • Prefix (namePrefix, e.g. tests_) — every native object of the extension must start with it.

Test-module structure

A test module is a native CommonModule in the test extension:

  • Flags: Сервер=Истина (for server tests); NOT Глобальный, NOT ВызовСервера, no re-use. At least one context flag (Сервер or КлиентУправляемоеПриложение).
  • The name starts with the extension prefix (e.g. tests_SampleTests).
  • Registered in the extension's Configuration.mdo with <commonModules>CommonModule.tests_SampleTests</commonModules>.

Minimal module:

bsl
#Region Public

// YAXUnit finds the test module by the exported ИсполняемыеСценарии() and calls it
// to collect the test set. Each .ДобавитьТест("Method") = an exported procedure below.
Процедура ИсполняемыеСценарии() Экспорт
    ЮТТесты.ДобавитьТестовыйНабор("Arithmetic")
        .ДобавитьТест("TwoPlusTwoIsFour");
    // Parameterization: one method, several input sets.
    ЮТТесты.ДобавитьТестовыйНабор("Parameterized")
        .ДобавитьТест("SumByParameters")
            .СПараметрами(2, 3, 5)
            .СПараметрами(0, 0, 0);
КонецПроцедуры

// Hook — runs before each test of the module. Per-test scratch state lives in
// ЮТест.КонтекстТеста() (also КонтекстТестовогоНабора / КонтекстМодуля).
Процедура ПередКаждымТестом() Экспорт
    ЮТест.КонтекстТеста().Вставить("Started", Истина);
КонецПроцедуры

Процедура TwoPlusTwoIsFour() Экспорт
    ЮТест.ОжидаетЧто(2 + 2).Равно(4);
КонецПроцедуры

Процедура SumByParameters(First, Second, Expected) Экспорт
    ЮТест.ОжидаетЧто(First + Second).Равно(Expected);
КонецПроцедуры

#EndRegion

Other hooks (by name, all exported, optional): ПередВсемиТестамиМодуля / ПослеВсехТестовМодуля, ПередТестовымНабором / ПослеТестовогоНабора, ПередКаждымТестом / ПослеКаждогоТеста. Registration: .ДобавитьСерверныйТест / .ДобавитьКлиентскийТест for a specific context; .Тег("..."), .ВТранзакции() on a suite/test.

Asserts — ЮТест.ОжидаетЧто(value [, message])

Chain (each method takes an optional final parameter — the check description):

  • equality/comparison: .Равно / .НеРавно / .Больше / .БольшеИлиРавно / .Меньше / .МеньшеИлиРавно;
  • boolean/existence: .ЭтоИстина / .ЭтоЛожь / .Заполнено / .НеЗаполнено / .ЭтоНеопределено / .Существует;
  • type: .ИмеетТип("Число") / .ИмеетТип(Тип("Строка"));
  • strings: .Содержит / .НеСодержит / .НачинаетсяС / .ЗаканчиваетсяНа / .ИмеетДлину(N) / .СодержитСтрокуПоШаблону("regex");
  • collections: .ИмеетДлину(N) / .Содержит(Элемент) / .КаждыйЭлементСодержитСвойство("X");
  • navigation: .Свойство("Реквизит") / .Свойство("Товары[0].Номенклатура") / .Объект();
  • exceptions: ЮТест.ОжидаетЧто(Модуль).Метод("Имя").Параметр(X).ВыбрасываетИсключение("fragment") (or .НеВыбрасываетИсключение()).

Unconditional: ЮТест.Упал("why"), ЮТест.Пропустить("reason"). The API is Russian-only (no English aliases).

Running through MCP

  • run_yaxunit_tests — starts a run, polls up to timeout seconds, returns a JUnit-Markdown report (plus report.md/junit.xml on disk). Filters (arrays; families AND-combined, values within a family OR-ed): extensions, modules, tests (format Module.Method), tags. With no filter — default filter.extensions=["tests"]. tags selects by the YAXUnit tags declared with ЮТТесты.Тег(...) — module-, suite- or test-level, case-insensitive, no exclusion syntax.
  • debug_yaxunit_tests — deprecated alias for run_yaxunit_tests(debug=true). It uses the same named-job path: a short start returns the launch handle; otherwise Pending returns jobId for get_job_status. When the handle arrives, call wait_for_break → get_variables / evaluate_expression / step / resume. Pin to one test (tests=["Module.Method"]) for predictability.
Show full SKILL.md (393 more words)Show less
Repo gotchas
  • A "TestConfiguration Thin Client" config without the applicationId attribute — both run_yaxunit_tests and update_database now derive the target from the project instead of failing (Pre-launch preparation failed: Application not found): the launch tools fall back to the project's default application, update_database only to its SINGLE application, refusing when the project has several. If it is refused: run update_database(projectName="TestConfiguration", applicationId=<from get_applications>, confirm=true) explicitly, then run_yaxunit_tests(launchConfigurationName="TestConfiguration Thin Client", updateBeforeLaunch=false).
  • update_database is confirm-preview → the first call returns a preview, then confirm=true is required (this is a destructive infobase operation, IRREVERSIBLE — only on explicit request).
  • The extension must be deployed into the infobase (update_database) before a run; after changing a test module on disk → clean_project(projectName="TestConfiguration.tests") (refresh from disk) → update_database (deploy) → run_yaxunit_tests.
  • The EDT extension project is named <base>.<extName> (e.g. TestConfiguration.tests) — use this name in clean_project/get_project_errors/get_module_structure. But filter.extensions takes the extension configuration name (tests).
  • Expected EDT warnings (NOT errors, the run is unaffected): Variable 'ЮТест'/'ЮТТесты' is not defined — the engine isn't in the EDT workspace, it resolves at runtime from the loaded .cfe; common-module-type — a BSP-style opinion about a server module's context flags, inapplicable to test modules.
  • The MCP client call timeout may be shorter than the run — set a small timeout (≈30). On Pending, keep the returned jobId and poll get_job_status; do not reconstruct the start arguments to address a known run. A repeated start is only a live duplicate guard, not the polling interface.
  • To stop a live run, preview with cancel_job(jobId=...) first. Confirmed YAXUnit cancellation kills the client but does not roll back the infobase; the report is partial or absent. A committed non-YAXUnit job without an owner-declared cancellation capability remains alreadyCommitted.

Example in the repo

tests/tests — the tests extension (prefix tests_), module tests_SampleTests: 8 cases (equality; a cross-config call Calc.Add from the extension; a call to a sibling extension module tests_MathHelper; subtraction; a string-assert chain; parameterized ×3). Green run: run_yaxunit_tests(launchConfigurationName="TestConfiguration Thin Client", modules="tests_SampleTests") → 8/8 PASSED.

A separate module tests_FailureDemo (1 passing + 1 intentionally failing) verifies that failures are reflected correctly in the report counters. So a run with no filter (the whole extensions=["tests"]) includes that 1 expected fail (Total 10 → 9 passed, 1 failed) — that is by design, not a bug; for a green run filter modules="tests_SampleTests". The full live round-trip e2e validation (pass/fail counters + debug suspend/resume + launch id + profiling) is tests/e2e/tools/test_live_roundtrip.py, gated behind EDT_MCP_LIVE_INFOBASE=1.

Sources

© DitriXNew, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/edt-mcp-yaxunit of DitriXNew/EDT-MCP.

Open the folder on GitHubat commit 6d18531

Compare with similar skills

Edt MCP Yaxunit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Edt MCP Yaxunit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Edt MCP Yaxunit this skillDitriXNew/EDT-MCP296—~2.5kAutomated safety check: PassAGPL-3.0
Adding LLM MCP ToolsTriliumNext/Trilium38k—~2.5kAutomated safety check: PassAGPL-3.0
Zizkadb TestZIZKA-AI-SL/ZizkaDB130—~358Automated safety check: PassCustom licence
MCP Testingadeze/raindrop-mcp188—~1.6kAutomated safety check: PassMIT
Live Linear Smoketacticlaunch/mcp-linear147—~251Automated safety check: PassMIT
Gaia Testingamd/gaia1.6k—~8kAutomated safety check: NotesMIT

Similar skills

  • Adding LLM MCP Tools

    TriliumNext/Trilium

    A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…

    38k GitHub stars~2.5k tokensUpdated today
    Testing & QAAuto-check passed
  • Zizkadb Test

    ZIZKA-AI-SL/ZizkaDB

    Run the full ZizkaDB test suite across all layers — lint, Python unit tests, SDK tests, MCP tests, TypeScript tests, and dashboard build verification.

    130 GitHub stars~358 tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • MCP Testing

    adeze/raindrop-mcp

    MCP Testing Strategies with Vitest, Inspector, and Integration Tests

    188 GitHub stars~1.6k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Live Linear Smoke

    tacticlaunch/mcp-linear

    Run safe live smoke tests for mcp-linear against a real Linear workspace.

    147 GitHub stars~251 tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Gaia Testing

    amd/gaia

    GAIA's multi-tier regression harness — runs unit, integration, and real-world (on-machine) tiers and brings back screenshots, logs, traces, planted-fact retrieval proof, and per-operation timing…

    1.6k GitHub stars~8k tokensUpdated today
    Testing & QAAuto-check: notes
  • Sapui5

    secondsky/sap-skills

    This skill should be used when developing SAP UI5 applications, including creating freestyle apps, Fiori Elements apps, custom controls, testing, data binding, OData integration, routing, and…

    462 GitHub stars~4.1k tokensUpdated 5 days ago
    Testing & QAAuto-check passed

More from DitriXNew/EDT-MCP

All 24 skills in this repo
  • Edt MCP Autopilot

    DitriXNew/EDT-MCP

    Autonomous, spec-driven, multi-agent pipeline that takes an EDT-MCP task or issue end-to-end — research → critics → architect → parallel development → review loop → tests → live-stand check →…

    296 GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Edt MCP Build Test

    DitriXNew/EDT-MCP

    How to build the EDT-MCP Eclipse plugin (Tycho/Maven) and run its unit and e2e tests, plus the test conventions for this repo.

    296 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed
  • Edt MCP E2E Testing

    DitriXNew/EDT-MCP

    How to write/run the AUTOMATED black-box e2e suite (tests/e2e/) that covers every EDT-MCP tool (62 today) against a live server with git-fixture isolation, happy + negative + error-quality coverage…

    296 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check passed
  • Edt MCP Tool Descriptions

    DitriXNew/EDT-MCP

    How to size, write and A/B-test the text of a tool — its description and its inputSchema parameter prose — so that cutting it does not cost call quality, and so that a tool that IS getting called…

    296 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed
  • Edt MCP Testing

    DitriXNew/EDT-MCP

    How to manually e2e-test each EDT-MCP server tool against a live EDT workbench + TestConfiguration.

    296 GitHub stars~2.1k tokensUpdated 2 days ago
    Auto-check passed
  • Edt MCP Architecture

    DitriXNew/EDT-MCP

    Map of the EDT-MCP plugin's target architecture — where the shared helpers live, the layering rules, and the canonical way to do project/metadata/code resolution.

    296 GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed

Questions about Edt MCP Yaxunit

What does Edt MCP Yaxunit do?

How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP runyaxunittests / debugyaxunittests tools. Edt MCP Yaxunit is an agent skill from DitriXNew/EDT-MCP. How to write and run YAXUnit unit tests for a 1C configuration through 1C:EDT + the EDT-MCP runyaxunittests / debugyaxunittests tools.

When should I use Edt MCP Yaxunit?

Edt MCP Yaxunit fits situations like: writing/running YAXUnit tests; setting YAXUnit up.

How do I install Edt MCP Yaxunit in Claude Code?

Run `npx skills add DitriXNew/EDT-MCP --skill edt-mcp-yaxunit -a claude-code`. Or copy the skill folder (.claude/skills/edt-mcp-yaxunit in DitriXNew/EDT-MCP) into .claude/skills/edt-mcp-yaxunit in your project. Claude Code loads it when a task matches its description.

How do I install Edt MCP Yaxunit in Codex?

Run `npx skills add DitriXNew/EDT-MCP --skill edt-mcp-yaxunit -a codex`. Or copy the skill folder (.claude/skills/edt-mcp-yaxunit in DitriXNew/EDT-MCP) into .agents/skills/edt-mcp-yaxunit in your project. Codex loads it when a task matches its description.

Can I use Edt MCP Yaxunit in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DitriXNew/EDT-MCP --skill edt-mcp-yaxunit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/edt-mcp-yaxunit, .gemini/skills/edt-mcp-yaxunit, .github/skills/edt-mcp-yaxunit and .opencode/skills/edt-mcp-yaxunit in your project.

What does Edt MCP Yaxunit need to run?

SKILL.md names no scripts, command-line tools or credentials: Edt MCP Yaxunit is instructions for the agent only.

Does Edt MCP Yaxunit access the network?

SKILL.md names 2 domains. As links in the text: github.com and bia-technologies.github.io. This is read from the text; nothing was executed.

Is Edt MCP Yaxunit safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Edt MCP Yaxunit use?

Edt MCP Yaxunit is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Edt MCP Yaxunit use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Edt MCP Yaxunit?

Skills that share tags, products or a category with Edt MCP Yaxunit: Adding LLM MCP Tools (TriliumNext/Trilium, 38k stars), Zizkadb Test (ZIZKA-AI-SL/ZizkaDB, 130 stars), MCP Testing (adeze/raindrop-mcp, 188 stars) and Live Linear Smoke (tacticlaunch/mcp-linear, 147 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Edt MCP Yaxunit?

DitriXNew (a GitHub user) maintains it in DitriXNew/EDT-MCP, which has 296 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 7, 2026.

Source: DitriXNew/EDT-MCP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.