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:
tmp\vs2022\tests.vcxproj 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"
scripts\run_imgui_tests.bat Debug -imgui_run_tests ltct_open_close
scripts\run_imgui_tests.bat Debug -imgui_run_tests ltct_array_open_close
scripts\run_imgui_tests.bat Debug -imgui_run_tests ltct_cube_open_close
ltct_open_close opens scripts/tests/texture_recipe.ltct, verifies its code-editor pane, and closes it through Studio’s Close action. The test requires the data project.
ltct_array_open_close additionally checks a three-layer compiled texture array and its layer selector.
ltct_cube_open_close checks cubemap compilation, the face selector, and the code-editor lifecycle.
-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.bat on Windowsscripts/run_tests.sh on LinuxBecause tests.exe includes particle script, UI, and Evox test suites, this workflow triggers on pushes and pull requests when related paths change:
**/particle_script*src/ui/**src/tests/ui_*src/tests/evox_*src/evox/**external/evox/**scripts/run_tests.*scripts/premake5.lua.github/workflows/tests.yml