Serial prep (venv tool installs + flatpak runtimes + wheel, which the AppImage depends on), then the four heavy builds run concurrently. The shared venv is only written during prep, so the parallel builds (read-only on the venv) don't race on pip. Per-step logs under dist/.build-logs/; failing logs are printed. --serial falls back to one-at-a-time. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
testium
testium is a YAML-driven test sequencer for hardware-in-the-loop and
integration testing. A test campaign is described in a .tum file as a tree
of items (checks, console interactions, Python/Lua functions, parallel blocks,
dialogs, …); testium executes the tree, captures results, and produces
reports in several formats.
Documentation
- Quick start — install and run your first test in five minutes.
- Tutorial — guided walk-through of the most common test items with a runnable example.
- User manual (PDF) — full reference.
doc/examples/— runnable.tumsnippets.
Pre-built releases
Pre-built artifacts are published at https://git.beafrancois.fr/v-and-v/testium/releases:
-
Python wheel (
testium-<version>-py3-none-any.whl) — install withpip install testium-*.whl. Lighter than the binary; pulls Python dependencies from PyPI on install. -
Self-contained Linux binary (
testium, built with PyInstaller) — runnable directly, no Python installation required on the host. Lua support still needs a systemluainterpreter and thelua-socket/lua-cjsonmodules. -
Flatpak bundle (
testium.flatpak) — install with:# Add Flathub (once, to fetch the KDE/PySide runtimes) flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # Install the bundle flatpak install --user testium.flatpakAfter installation testium appears in the desktop application menu and the
testiumcommand is available in the terminal (requires~/.local/bininPATH, which most modern distributions provide by default).
Quick start
From a checkout of the repository:
| OS | Command |
|---|---|
| Linux | ./run.sh |
| Windows (cmd) | run.bat |
| Windows (PowerShell) | run.ps1 |
The wrapper creates a Python virtual environment on first run and starts
testium in GUI mode. Add -b path/to/test.tum to run a test in batch mode.
Manual installation
If the wrapper script does not fit your environment, set up testium manually:
python3 -m venv .venv
source .venv/bin/activate
pip install -r src/requirements.txt
Required Python packages (see src/requirements.txt):
pyside6, pyserial, pyyaml, pexpect, gitpython, jinja2, colorama,
matplotlib, junit-xml, lxml.
For tests using lua_func items, install Lua (>= 5.1) plus the socket and
cjson modules. On Debian/Ubuntu:
sudo apt install lua5.4 lua-socket lua-cjson
Run testium:
python3 src/testium # GUI
python3 src/testium -b mytest.tum # batch
Troubleshooting
wl_proxy_marshal_flags symbol error
testium: symbol lookup error: ... undefined symbol: wl_proxy_marshal_flags
Force the X11 Qt backend:
export QT_QPA_PLATFORM=xcb
testium
xcb plugin missing
qt.qpa.plugin: Could not load the Qt platform plugin "xcb"
Install the missing system libraries:
sudo apt install libxcb-cursor0 libicu-dev libxcb-cursor-dev
License
Copyright © 2025-2026 François Dausseur.
testium is distributed under the European Union Public Licence v. 1.2
(EUPL-1.2) — see LICENSE for the full text. SPDX:
EUPL-1.2.
Contributions are accepted under the same licence (inbound = outbound).
See CONTRIBUTING.md for development setup, debugging
workflow, and the release procedure.