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: about 1 year 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 (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-09T22:10:58.000Z (about 2 years ago)
- Last Synced: 2025-02-11T08:48:25.267Z (over 1 year 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:

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.

### OUTPUT
Raw stdout output of pytest.

### LOG
Internal log of infinity, with the output directory printed first.

### FILES
Navigatable filesystem with test run info.
