Running Tests
The tests are designed to be run on non-Raspi hardware.
On your testing machine you'll have to install:
# general dependencies
pip3 install -r requirements.txt
# test suite dependencies
pip3 install -r tests/requirements.txt
Then make the seedsigner python module visible/importable to the tests by installing it:
pip3 install -e .
Run the whole test suite:
pytest
Run a specific test file:
pytest tests/test_this_file.py
Run a specific test:
pytest tests/test_this_file.py::test_this_specific_test
Force pytest to show logging output:
pytest tests/test_this_file.py::test_this_specific_test -o log_cli=1
# or (same result)
pytest tests/test_this_file.py::test_this_specific_test --log-cli-level=DEBUG
Annoying complications:
- If you want to see
print()statements that are in a test file, add-s - Better idea: use a proper logger in the test file and use one of the above options to display logs
Screenshot generator
The screenshot generator is meant to mostly be a utility and not really part of the test suite. However,
it is actually implemented to be run by pytest.
see: Screenshot generator README
Test Coverage
Run tests and generate test coverage
coverage run -m pytest
The screenshots have to be run separately, but they can also add to overall coverage:
coverage run -m pytest tests/screenshot_generator/generator.py --locale es
Each run creates its own .coverage.* results file. Merge them into one result with:
coverage combine
Show the resulting test coverage details:
coverage report
Generate the html overview:
coverage html