Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Testing

Quick start

just test_pytest    # Run the test suite
just test_mypy      # Type-check the Python bindings

Or without just:

pytest                            # from repo root
cd bindings && ./mypy_bindings.sh # mypy

What the test suite covers

GUI tests

GUI tests live in tests/tests_python_gui/ and require a display (they open windows). They are not run by default in CI.

To run them locally:

pytest tests/tests_python_gui/

These tests verify:

Manual smoke testing

The most thorough manual test is to run the main demo application, which exercises most libraries:

C++:

cd builds/my_build
./demo_imgui_bundle

Python:

python bindings/imgui_bundle/demos_python/demos_immapp/demo_hello_world.py

CI workflows

The project has extensive CI via GitHub Actions (.github/workflows/):

WorkflowWhat it tests
cpp_lib.ymlC++ library build (multiple platforms)
cpp_lib_with_bindings.ymlC++ build with Python bindings
pip.ymlpip install from source
wheels.ymlBuild distributable wheels (cibuildwheel)
emscripten.ymlEmscripten / WebAssembly build
pyodide.ymlPyodide / browser build
Metal.ymlmacOS Metal renderer
Vulkan.ymlVulkan renderer
DirectX.ymlWindows DirectX
android.ymlAndroid build
ios.ymliOS build
ci_automation_test.ymlAutomated GUI test (runs demo, takes screenshots)

Most workflows trigger on push to main and on pull requests.