EvoEngine uses CTest for local test execution. The test suite includes C++ unit tests, render/GPU tests, Python-driven render capture tests, app smoke tests, and Windows launcher smoke tests.
Local render/GPU tests:
python Scripts\test.pyAll CTest tests:
python Scripts\test.py --allList tests:
python Scripts\test.py --listRun CTest directly:
ctest --test-dir out/build/vs2026-x64 -C RelWithDebInfo --output-on-failureRun focused launcher tests:
ctest --test-dir out/build/vs2026-x64 -C RelWithDebInfo -R "Launcher" --output-on-failurepython Scripts/test.py defaults to render/GPU-labeled tests. It builds the EvoEngine_RenderTests aggregate target and runs tests such as:
- render golden-image comparison
- Python render capture workflows
- launcher/editor smoke coverage for project startup and the Rendering demo profile
Visual artifacts are written under:
out/test-artifacts/latest/
Render comparisons report PSNR and SSIM when applicable.
GitHub Actions run repository-wide format checks and platform compilation checks. Rendering tests are intentionally local-only because they require a Vulkan-capable GPU environment and produce visual artifacts for inspection.
Cheap unit tests should stay isolated as normal CTest/GTest cases. GUI and process smoke tests can group multiple named subtests inside one launched process when the checks share a lifecycle and can report clear per-step failures. Process-boundary tests should remain separate when their purpose is to verify startup, shutdown, or child process behavior.