You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OneUnit включает MCP-сервер ([Model Context Protocol](https://modelcontextprotocol.io)), позволяющий ИИ-агентам (Claude Code, Cursor, GitHub Copilot и другим MCP-клиентам) обнаруживать и запускать тесты проекта напрямую, без разбора консольного вывода. Сервер построен на библиотеке [autumn-mcp](https://github.com/autumn-library/autumn-mcp) и работает по протоколу stdio.
750
+
751
+
### 3.1 Подключение
752
+
753
+
Добавьте OneUnit в конфигурацию MCP-серверов вашего клиента (например, `.mcp.json` для Claude Code или `.cursor/mcp.json` для Cursor).
754
+
755
+
Linux и macOS:
756
+
757
+
```json
758
+
{
759
+
"mcpServers": {
760
+
"oneunit": {
761
+
"command": "oneunit",
762
+
"args": ["mcp"]
763
+
}
764
+
}
765
+
}
766
+
```
767
+
768
+
Windows — обязательно через `cmd /c`: `oneunit` устанавливается как `oneunit.bat`, а MCP-клиенты запускают серверы без командного процессора и не могут исполнить bat-файл напрямую:
769
+
770
+
```json
771
+
{
772
+
"mcpServers": {
773
+
"oneunit": {
774
+
"command": "cmd",
775
+
"args": ["/c", "oneunit", "mcp"]
776
+
}
777
+
}
778
+
}
779
+
```
780
+
781
+
Для Claude Code то же самое можно сделать одной командой:
782
+
783
+
```console
784
+
# Linux и macOS
785
+
claude mcp add oneunit -- oneunit mcp
786
+
787
+
# Windows
788
+
claude mcp add oneunit -- cmd /c oneunit mcp
789
+
```
790
+
791
+
Сервер запускается в рабочем каталоге проекта и по умолчанию ищет тесты в `./tests`. Зависимости проекта разрешаются так же, как при запуске из командной строки, включая `oscript.cfg` (см. [раздел 2.1.2](#212-работа-с-зависимостями)).
792
+
793
+
### 3.2 Инструменты
794
+
795
+
Сервер предоставляет два инструмента:
796
+
797
+
| Инструмент | Описание |
798
+
|---|---|
799
+
|`run_tests`| Запускает тесты и возвращает структурированный результат: статистику прогона (`statistics`), проблемы с сообщениями об ошибках и стеками (`problems`), пропущенные тесты с причинами (`skipped_tests`) |
800
+
|`discover_tests`| Обнаруживает тесты без их выполнения и возвращает список полных имён тестов |
801
+
802
+
Оба инструмента поддерживают параметры фильтрации, аналогичные опциям командной строки: каталоги (`directories`) и файлы (`files`) тестов, поиск в подкаталогах (`recursive`), фильтры по тегам (`tags_include`/`tags_exclude`), наборам (`suites_include`/`suites_exclude`) и методам (`methods_include`/`methods_exclude`), а `run_tests` дополнительно принимает таймаут теста в миллисекундах (`timeout`). Параметр `working_directory` позволяет указать каталог проекта, если он отличается от каталога запуска сервера.
803
+
804
+
Параметр `coverage` инструмента `run_tests` добавляет в ответ сводку покрытия кода тестами: общий процент (`percent`), количество покрытых и исполняемых строк (`lines_covered`/`lines_total`) и разбивку по файлам с номерами непокрытых строк — файлы отсортированы от наименее покрытых.
0 commit comments