Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yuvalino/pytest-infinity
Infinity helps debugging the most sophisticated bugs.
https://github.com/yuvalino/pytest-infinity
pytest python testing xdist
Last synced: 16 days ago
JSON representation
Infinity helps debugging the most sophisticated bugs.
- Host: GitHub
- URL: https://github.com/yuvalino/pytest-infinity
- Owner: yuvalino
- Created: 2024-05-26T17:10:21.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2024-06-09T22:10:58.000Z (7 months ago)
- Last Synced: 2024-10-31T05:12:03.948Z (2 months ago)
- Topics: pytest, python, testing, xdist
- Language: Python
- Homepage:
- Size: 736 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# pytest-infinity
pytest-infinity is a wrapper for [pytest](https://github.com/pytest-dev/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:
![anim](imgs/infinity.gif)
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](https://github.com/pytest-dev/pytest-xdist) - runs tests in parallel.
- [pytest-publish](https://github.com/yuvalino/pytest-publish) - publish live test results to REST and filesystem.
- [pytest-xstress](https://github.com/yuvalino/pytest-xstress) - runs tests infinitely over xdist.Infinity uses the following plugins for its UI:
- [textual](https://github.com/Textualize/textual) - create UI apps in terminal.
- [rich](https://github.com/Textualize/rich) - rich text for terminals.PLEASE REPORT BUGS!
## Usage
Just run `infinity ...`
The wrapper adds the following flags implicitly:
```sh
$ pytest --color yes -v
-n auto --dist loadgroup
--xstress
--publish http://localhost:...
--pubdir
...
```Your pytest args are appended to the end of the cmdline.
## Functions
There are a few useful tabs implemented into infinity:
### RUN
See a matrix of `groups X tests` updated live with [pass][fail][skip] text.
![run](imgs/run.png)
### OUTPUT
Raw stdout output of pytest.
![output](imgs/output.png)
### LOG
Internal log of infinity, with the output directory printed first.
![log](imgs/log.png)
### FILES
Navigatable filesystem with test run info.
![files](imgs/files.png)