Back to homepage
How the engine is tested automatically
Updated Wed, 17 Apr 2019 15:43:09 +0100 by Wuzzy

Engine tests cases

Hedgewars developers have made some automated tests to test certain features of the engine automatically to ensure a certain level of quality and to prevent old fixed bug from popping up again.

Currently, all automated Lua tests are done with Lua scripting.

Running test cases

There are two ways to run a test: Automated and manual.

Automated testing

This requires you to have CMake.

Run ctest in the root directory of the repository to run all tests. Run ctest -R <test name> to run only the test with the given name.

Note that automated tests will run much faster than in real game time. You won't see any actual game action, however.

Manual testing

Each test can also be run manually in which you run the tests in real time and you can see what's going on.

Copy the corresponding Lua file from tests/lua to Data/Missions/Training (in the Hedgewars user directory), then open Hedgewars and start the test from the training menu.

Creating test cases

You can find the test cases in the repository under tests/lua .

These scripts are treated like ordinary scripts in Hedgewars (like misions or multiplayer scripts) but there's one important difference: You must call EndLuaTest when the test result (success or failure) has be determined (see LuaUtil).