pytest-infinity is a wrapper for pytest, designed to easily command a test session running infinitely using xdist --dist loadgroup
option.
Below is a demonstration for running tests with an "android" and "ios" group:
Infinity was created for complex low-level test suites in mind for hunting down non-deterministic bugs (running high-level or native tests on multiple mobile devices simultaneously).
These are the main principles of infinity:
- Ease-of-use.
- Test history.
- Infinitely-long sessions.
Infinity uses the following pytest plugins for its functionality:
- pytest-xdist - runs tests in parallel.
- pytest-publish - publish live test results to REST and filesystem.
- pytest-xstress - runs tests infinitely over xdist.
Infinity uses the following plugins for its UI:
PLEASE REPORT BUGS!
Just run infinity <pytest args> ...
The wrapper adds the following flags implicitly:
$ pytest --color yes -v
-n auto --dist loadgroup
--xstress
--publish http://localhost:... <impl defined>
--pubdir <impl defined>
<pytest args> ...
Your pytest args are appended to the end of the cmdline.
There are a few useful tabs implemented into infinity:
See a matrix of groups X tests
updated live with [pass][fail][skip] text.
Raw stdout output of pytest.
Internal log of infinity, with the output directory printed first.
Navigatable filesystem with test run info.