The test suite uses PyTest for testing.
python3-pytest
for the basic framework (required)python3-pytestqt
for Qt support (required)python3-pytest-cov
for code coverage reports (optional)python3-pytest-xvfb
for headless tests (optional)
To run all tests, type:
pytest-3 -v
The -v
switch enables verbose mode, with one test per line.
For a more compact view, omit this switch.
To run tests in headless mode, either use the Qt offscreen
mode:
export QT_QPA_PLATFORM=offscreen
or run with xvfb
:
xvfb-run pytest-3 -v
To add test coverage, run the following:
pytest-3 -v --cov=nw --cov-report=html
The --cov-report
switch generates an html report, omit it to print a coverage summary to the
terminal. The html coverage report will be available in the htmlcov
folder.
To run with specific test markers, add the -m
switch:
pytest-3 -v -m core
Available markers are:
base
for unit tests covering the non-gui classes of thenw
folder..core
for unit tests covering the classes in thenw/core
folder.gui
for unit and integrations tests covering the classes in thenw/gui
folder.
You can filter tests further with the -k
switch, all the way down to a single test. You can for
instance run only dialog tests with -k testDlg
or tools with -k testTool
.