← ClaudeAtlas

godot-e2elisted

Write and run E2E (end-to-end) game tests using the godot-e2e framework. Python controls a live Godot game over TCP — Locator-based semantic queries, expect() auto-retry assertions, and engine log capture make failures self-diagnosing. Use this skill whenever you need to: - Test actual gameplay: player movement, collisions, scoring, scene transitions - Verify UI interactions: button clicks, label text, menu navigation - Write integration tests that run the real game (not mocked unit tests) - Debug E2E test failures or set up E2E test infrastructure Triggers: "E2E test", "end-to-end test", "gameplay test", "test the game running", "simulate input", "test player movement", "test UI clicks", "godot-e2e", "integration test for game", "test scene transitions".
RandallLiuXin/GodotMaker · ★ 219 · Testing & QA · score 79
Install: claude install-skill RandallLiuXin/GodotMaker
# godot-e2e — E2E Testing for Godot $ARGUMENTS godot-e2e is a custom framework with **zero LLM training data coverage**. Everything the model needs is in this skill (with deeper detail in `references/`). Do not guess — follow these docs exactly. ## Architecture The `godot-e2e` CLI launches a Godot process and communicates over TCP (localhost). Enabling the GodotE2E plugin in Project Settings auto-registers an `AutomationServer` autoload that receives JSON commands, executes them on the main thread, and sends back results. The game runs unmodified — the server is dormant unless launched with `--e2e`. Multiple instances can run in parallel (each auto-allocates a unique port). The framework rests on three pillars: `Locator` for semantic node queries, `expect()` for auto-retry assertions, and engine log capture so every error carries the Godot logs that preceded it. ## Quick Start — conftest.py + Test File ```python # conftest.py (per test directory — explicit project path control; # alternatively set GODOT_E2E_PROJECT_PATH env or pytest.ini # `godot_e2e_project_path` and use the auto-registered `game` fixture). # Replace "/root/Main" below with your project's entry-scene root — # read it from `project.godot`'s `run/main_scene`. import os import pytest from godot_e2e import GodotE2E GODOT_PROJECT = os.path.join(os.path.dirname(__file__), "..") GODOT_CONFIG = os.path.join(GODOT_PROJECT, ".claude", "godotmaker.yaml") def _read_godot_path(): try: with open(GODO