A pytest plugin to get durations on a per-function basis and per module basis.
Project description
pytest-extra-durations
Get more info about the speed of your test suite.
It works with pytest-xdist too.
Installation
You can install "pytest-extra-durations" via pip
:
pip install git+https://github.com/gabrieldemarmiesse/pytest-extra-durations.git
Usage
This plugin provides three types of information.
The sum of all tests/setup/teardown durations
This can give you more info than the total time displayed by pytest because it's not influenced by the number of workers in pytest-dist, or the collection time.
Exemple:
============== Sum of all tests durations ===============
1.95s
This will be displayed all the time and can't be turned off unless you uninstall this plugin.
The sum of all the tests durations of a module
This will tell you how much time it took to execute all the tests in a given file.
The API is similar to the one of --durations
in the Pytest CLI.
pytest --modules-durations=4 ./path/to/test/directory
gives:
=============== slowest 4 modules durations =============
1.17s tensorflow_addons/activations/tests/sparsemax_test.py
0.28s tensorflow_addons/activations/tests/gelu_test.py
0.10s tensorflow_addons/activations/tests/softshrink_test.py
0.09s tensorflow_addons/activations/tests/rrelu_test.py
The sum of all the tests durations of a test function
A test function can produce multiple tests, that can be executed on different workers too. This will sum the durations of all tests, setups and teardown produced by a single test function, and report the slower ones.
The API is similar to the one of --durations
in the Pytest CLI.
pytest --functions-durations=4 ./path/to/test/directory
gives:
============ slowest test functions =============
0.99s tensorflow_addons/activations/tests/sparsemax_test.py::test_gradient_against_estimate
0.17s tensorflow_addons/activations/tests/gelu_test.py::test_same_as_py_func
0.09s tensorflow_addons/activations/tests/softshrink_test.py::test_same_as_py_func
0.08s tensorflow_addons/activations/tests/gelu_test.py::test_gelu
0.08s tensorflow_addons/activations/tests/rrelu_test.py::test_theoretical_gradients
TODO:
- Integration with line_profiler
- Add tests (the ones present are dummy ones)
- Automatic upload to pypi with github actions
- Running the tests in github actions
License
Distributed under the terms of the MIT
_ license, "pytest-extra-durations" is free and open source software
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest-extra-durations-0.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e496a7ba831faeade6d98b3638567d6fc607bc9fb688c010a27c04a941bedee9 |
|
MD5 | 235a0b857c22a260d142c1b26a4e3289 |
|
BLAKE2b-256 | 94215e46ca4eaf9f2fbed2857d18c2ca91a614e1474b33175b25255c50ad8498 |
Hashes for pytest_extra_durations-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8b491cc7ca328d89d0b357e6affb3904751a830a51d5287ff72259f6dcbdf2d |
|
MD5 | bfb2df9020b897ee0eb1d0f3935dc6e7 |
|
BLAKE2b-256 | b9d32e357304bfb364565da7b9386e6b4be321a475caf885648be3105fddf041 |