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
File details
Details for the file pytest-extra-durations-0.1.1.tar.gz
.
File metadata
- Download URL: pytest-extra-durations-0.1.1.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e496a7ba831faeade6d98b3638567d6fc607bc9fb688c010a27c04a941bedee9 |
|
MD5 | 235a0b857c22a260d142c1b26a4e3289 |
|
BLAKE2b-256 | 94215e46ca4eaf9f2fbed2857d18c2ca91a614e1474b33175b25255c50ad8498 |
File details
Details for the file pytest_extra_durations-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: pytest_extra_durations-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8b491cc7ca328d89d0b357e6affb3904751a830a51d5287ff72259f6dcbdf2d |
|
MD5 | bfb2df9020b897ee0eb1d0f3935dc6e7 |
|
BLAKE2b-256 | b9d32e357304bfb364565da7b9386e6b4be321a475caf885648be3105fddf041 |