Testing EvoEngine

June 26, 2026 ยท View on GitHub

Back to README

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.

Common Commands

Local render/GPU tests:

python Scripts\test.py

All CTest tests:

python Scripts\test.py --all

List tests:

python Scripts\test.py --list

Run CTest directly:

ctest --test-dir out/build/vs2026-x64 -C RelWithDebInfo --output-on-failure

Run focused launcher tests:

ctest --test-dir out/build/vs2026-x64 -C RelWithDebInfo -R "Launcher" --output-on-failure

Render Tests

python 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.

CI Scope

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.

Test Organization Notes

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.