Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-extra-durations-0.1.1.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

pytest_extra_durations-0.1.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

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

Hashes for pytest-extra-durations-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e496a7ba831faeade6d98b3638567d6fc607bc9fb688c010a27c04a941bedee9
MD5 235a0b857c22a260d142c1b26a4e3289
BLAKE2b-256 94215e46ca4eaf9f2fbed2857d18c2ca91a614e1474b33175b25255c50ad8498

See more details on using hashes here.

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

Hashes for pytest_extra_durations-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a8b491cc7ca328d89d0b357e6affb3904751a830a51d5287ff72259f6dcbdf2d
MD5 bfb2df9020b897ee0eb1d0f3935dc6e7
BLAKE2b-256 b9d32e357304bfb364565da7b9386e6b4be321a475caf885648be3105fddf041

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page