This document explains how tests are organized and how to run them locally.
Lumix currently has two test paths:
tests.exe for headless/unit-style tests (built from src/tests)studio.exe for interactive editor UI testsMain suites registered in src/tests/main.cpp:
From the repository root, run:
scripts\run_tests.bat
This script:
genie.exe --with-tests vs2022)tmp\vs2022\LumixEngine.sln in Debug|x64tmp\vs2022\bin\Debug\tests.exeExit codes:
0: all tests passed1: one or more tests failed (tests.exe currently returns 1 for any failure, not the number of failed tests)2: test executable was not foundFrom the repository root, run:
scripts\run_imgui_tests.bat
This script:
studio.exe with ImGui Test Engine UI enabledArguments:
Debug by default).Debug and RelWithDebInfo.studio.exe.scripts\run_imgui_tests.bat Debug
scripts\run_imgui_tests.bat RelWithDebInfo
scripts\run_imgui_tests.bat RelWithDebInfo -open "data/scripts/tests/sample.unv"
scripts\run_imgui_tests.bat -open "data/scripts/tests/sample.unv"
-imgui_test_ui enables ImGui Test Engine windows in Studio, where editor UI tests can be browsed and executed.
Example launch form:
studio.exe -imgui_test_ui -data_dir <repo>\data ...
GitHub Actions workflow .github/workflows/tests.yml runs:
scripts\run_tests.batBecause tests.exe includes both particle script and UI test suites, this workflow currently triggers on pushes and pull requests when any of these paths change:
**/particle_script*src/ui/**src/tests/ui_*.github/workflows/tests.yml