==============
Pytest Twister harness
==============
Installation
------------
If you plan to use this plugin with Twister, then you don't need to install it
separately by pip. When Twister uses this plugin for pytest tests, it updates
:envvar:`PYTHONPATH` variable, and then extends pytest command by
``-p twister_harness.plugin`` argument.
Usage
-----
Run exemplary test shell application by Twister:
.. code-block:: sh
cd ${ZEPHYR_BASE}
# native_sim & QEMU
./scripts/twister -p native_sim -p qemu_x86 -T samples/subsys/testsuite/pytest/shell
# hardware
./scripts/twister -p nrf52840dk/nrf52840 --device-testing --device-serial /dev/ttyACM0 -T samples/subsys/testsuite/pytest/shell
or build shell application by west and call pytest directly:
.. code-block:: sh
export PYTHONPATH=${ZEPHYR_BASE}/scripts/pylib/pytest-twister-harness/src:${PYTHONPATH}
cd ${ZEPHYR_BASE}/samples/subsys/testsuite/pytest/shell
# native_sim
west build -p -b native_sim -- -DCONFIG_NATIVE_UART_0_ON_STDINOUT=y
pytest --twister-harness --device-type=native --build-dir=build -p twister_harness.plugin
# QEMU
west build -p -b qemu_x86 -- -DQEMU_PIPE=qemu-fifo
pytest --twister-harness --device-type=qemu --build-dir=build -p twister_harness.plugin
# hardware
west build -p -b nrf52840dk/nrf52840
pytest --twister-harness --device-type=hardware --device-serial=/dev/ttyACM0 --build-dir=build -p twister_harness.plugin