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"
-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/genie.lua.github/workflows/tests.yml