A replacement progress and reporting front end for pytest, using Rich to provide enhanced output.
The most recent release is 0.1.0.
This is alpha software. Probably quite robust alpha software (I use it all the time), but there will be pytest options that cause it to fail or behave weirdly.
Please try it and raise issues if you have problems. I intend to check daily and fix things quickly.
Install from PyPi using pip, for example:
python -m pip install --user pytest-richer
Clone this repository and install using
pip
, For example:python -m pip install --user pytest-richer
Note
This was inspired by pytest-rich, but is incompatible with it. If you have pytest-rich installed, you will need to uninstall it first.
Use the --rich
command option when you invoke pytest.
- Detailed per-file/per directory progress display.
- Per-file view is used for preference.
- Per directory view is used when the number of files becomes unwieldy.
- Works very well with pytest-xdist
- When pytest-xdist is enabled, the progress display stays the same, rather than switching to a simplified form.
- Collection errors cause run to stop instead of being ignored.
- Error reporting formatting is unaffected by pytest-xdist.
- Order of error reports are not affected by pytest-xdist.
- Rich is used to format the details of collection and test execution errors.
- Arguably more human parseable error reports (at least I think so; suggestions for improvements welcome).
- In particular, collection error reports are easier to read.
- Additional information displayed.
- pytest-xdist output displayed as part of progress display.
- Slow setup and teardown phases are visible on the progress display.
- Setup and teardown errors separately identified on the progress display and in the final summary.
- Number of active pytest-xdist workers (parallel test count) shown.
Some other notable differences from the standard pytest reporter.
- Collection error details are reported when the
--no-summary
option is used. - Tracebacks are not as compact when the
--tb=short
option is used. This may change in the future, but is currently not practicable. - Long tracebacks include context lines after the failure line. This may change in the future, but is currently not practicable.
- Long tracebacks only show 3 lines of context before the failure line; pytest shows all preceding lines within the function.
There will undoubtedly be other differences and missing standard features at this stage. Please raise an issue for any problems.
This was inspired by pytest-rich.