Skip to main content
Glama
Rajendertyagi

MCPEvent

MCP Event Server — Набор тестов

Регрессионные тесты, ориентированные на функциональность, быстрые и устойчивые к зависаниям, для MCP event server (server.py, events.py, store.py, runtime.py, sources/).

Структура

test/
  run_all.py            # regression driver: isolated subprocess per file, hard 300s/file timeout
  helpers/              # lifecycle, mcp, wait, mock_http, runner — shared test support
  mcp_result.py         # SDK result normalization + safe teardown
  test_*.py             # one feature per file (the units of the suite)
  config.json           # base server config (overwritten per-test, restored after)
TEST_RUNTIME_MAP.md     # per-file server usage, harness behavior, run guidance

Исходный код продукта в test/ заморожен — не редактируйте server.py, events.py, store.py, runtime.py, errors.py, client.py, config.json, requirements.txt, или sources/* в рамках тестовой работы.

Related MCP server: MCP Server & Client Test Environment

Запуск

# Focused (preferred while debugging one feature):
python test/test_acknowledgement.py
python test/run_all.py --group fast

# Full regression (CI / release only — slow path):
python test/run_all.py
python test/run_all.py --timeout 300

Смотрите TEST_RUNTIME_MAP.md для матрицы использования сервера, стратегии ограниченного ожидания и почему во время разработки следует запускать целенаправленные, а не полные тесты.

Принципы

  • Без сервера, если только тест не требует границы MCP/HTTP. Логика приложения (store, events, routing, checkpoint/ack, background tasks, source lifecycle, dedup) тестируется напрямую с реальными объектами с использованием шины-заглушки в памяти.

  • Один сервер на файл уровня D (исключения: тесты перезапуска в test_errors.py / test_reconnect.py и test_subscriptions.py, тесты которых требуют разных конфигураций источников).

  • Ограниченные ожидания, без длительных фиксированных пауз. Готовность/количество опрашиваются с тайм-аутами.

  • Жесткий тайм-аут (300 с/файл) + очистка, принадлежащая родителю — запускающий завершает группу процессов дочернего процесса, поэтому зависший файл быстро завершается с ошибкой (сообщается как TIMEOUT), и любой server.py, который он породил, уничтожается вместе с ним. Нет зависимости от дочернего atexit (который не может выполняться после жесткого завершения).

Удалено (не воссоздавать)

test/test_phase8.py, test/integrate_test.py — заменены файлами, ориентированными на функции, выше.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A test server implementing all features of the MCP protocol, including prompts, tools, resources, and sampling, designed for testing MCP clients rather than practical applications.
    MIT