Skip to main content
Glama
Rajendertyagi

MCPEvent

MCP Event Server — Test Suite

Funktionsorientierte, schnelle und hängsichere Regressionstests für den MCP event server (server.py, events.py, store.py, runtime.py, sources/).

Aufbau

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

Der Produktionsquellcode unter test/ ist eingefroren — bearbeiten Sie server.py, events.py, store.py, runtime.py, errors.py, client.py, config.json, requirements.txt, oder sources/* nicht als Teil der Testarbeit.

Related MCP server: MCP Server & Client Test Environment

Ausführen

# 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

Siehe TEST_RUNTIME_MAP.md für die Server-Nutzungsmatrix, die begrenzte Warte-Strategie und warum Sie während der Entwicklung fokussierte und nicht vollständige Tests ausführen sollten.

Prinzipien

  • Kein Server, es sei denn, der Test benötigt die MCP/HTTP-Grenze. Die Anwendungslogik (Store, Events, Routing, Checkpoint/Ack, Hintergrundaufgaben, Quelllebenszyklus, Deduplizierung) wird direkt gegen die realen Objekte mit einem In-Memory-Stub-Bus getestet.

  • Ein Server pro D-Level-Datei (Ausnahmen: Neustarttests in test_errors.py / test_reconnect.py und test_subscriptions.py, deren Tests unterschiedliche Quellkonfigurationen benötigen).

  • Begrenzte Wartezeiten, keine langen festen Pausen. Bereitschaft/Zählungen werden mit Timeouts abgefragt.

  • Hartes Timeout (300 s/Datei) + vom Parent durchgeführte Bereinigung — der Runner beendet die Prozessgruppe des Kindes, sodass eine hängende Datei schnell fehlschlägt (gemeldet als TIMEOUT) und alle von ihr gestarteten server.py werden mit ihr beendet. Keine Abhängigkeit von atexit des Kindes (das nach einem harten Kill nicht ausgeführt werden kann).

Gelöscht (nicht neu erstellen)

test/test_phase8.py, test/integrate_test.py — ersetzt durch die obigen funktionsspezifischen Dateien.

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