A simple plugin to use with pytest
Project description
pytest-memray
pytest-memray is a pytest plugin for easy integration of memray
.
Usage
To use the plugin in a pytest run, simply add --memray
to the command line invocation:
pytest --memray tests/
Would produce a report like:
python3 -m pytest tests --memray
=============================================================================================================================== test session starts ================================================================================================================================
platform linux -- Python 3.8.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
rootdir: /mypackage, configfile: pytest.ini
plugins: cov-2.12.0, memray-0.1.0
collected 21 items
tests/test_package.py ..................... [100%]
================================================================================================================================= MEMRAY REPORT ==================================================================================================================================
Allocations results for tests/test_package.py::some_test_that_allocates
📦 Total memory allocated: 24.4MiB
📏 Total allocations: 33929
📊 Histogram of allocation sizes: |▂ █ |
🥇 Biggest allocating functions:
- parse:/opt/bb/lib/python3.8/ast.py:47 -> 3.0MiB
- parse:/opt/bb/lib/python3.8/ast.py:47 -> 2.3MiB
- _visit:/opt/bb/lib/python3.8/site-packages/astroid/transforms.py:62 -> 576.0KiB
- parse:/opt/bb/lib/python3.8/ast.py:47 -> 517.6KiB
- __init__:/opt/bb/lib/python3.8/site-packages/astroid/node_classes.py:1353 -> 512.0KiB
Configuration
This plugin provides a clean minimal set of command line options that are added to pytest.
--memray
: Activate memray tracking.--most-allocations=MOST_ALLOCATIONS
: Show the N tests that allocate most memory (N=0 for all).--hide-memray-summary
: Hide the memray summary at the end of the execution.
Markers
There are some builtin markers and fixtures in pytest-memray
:
limit_memory
When this marker is applied to a test, it will cause the test to fail if the execution of the test allocates more memory than allowed. It takes a single argument with a string indicating the maximum memory that the test can allocate.
The format for the string is <NUMBER> ([KMGTP]B|B)
. The marker will raise
ValueError if the string format cannot be parsed correctly.
Example of usage:
@pytest.mark.limit_memory("24 MB")
def test_foobar():
# do some stuff that allocates memory
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
File details
Details for the file pytest-memray-1.0.0.tar.gz
.
File metadata
- Download URL: pytest-memray-1.0.0.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87cd337d4a258acbffb4b8a5b98eac3474b81e03ea34410c9a87fb6b93c1d072 |
|
MD5 | 284f43e32919b4d1c059c2ad918e765f |
|
BLAKE2b-256 | b04692851156000f2df23245596f3d4b51dc52e156ada344d14ffd45c3e1f41f |