pytest-memray#
A pytest plugin for easy integration of memray
in your test suite. It can produce
reports like:
$ pytest --memray /w/demo
=================================== test session starts ====================================
platform linux -- Python 3.10.4, pytest-7.1.2, pluggy-1.0.0
rootdir: /w
plugins: memray-1.3.0
collected 2 items
demo/test_ok.py .M [100%]
========================================= FAILURES =========================================
____________________________________ test_memory_exceed ____________________________________
Test was limited to 100.0KiB but allocated 117.2KiB
------------------------------------ memray-max-memory -------------------------------------
Test is using 117.2KiB out of limit of 100.0KiB
List of allocations:
- <listcomp>:/w/demo/test_ok.py:17 -> 117.2KiB
====================================== MEMRAY REPORT =======================================
Allocations results for demo/test_ok.py::test_memory_exceed
📦 Total memory allocated: 117.2KiB
📏 Total allocations: 30
📊 Histogram of allocation sizes: |█|
🥇 Biggest allocating functions:
- <listcomp>:/w/demo/test_ok.py:17 -> 117.2KiB
Allocations results for demo/test_ok.py::test_track
📦 Total memory allocated: 58.4KiB
📏 Total allocations: 65
📊 Histogram of allocation sizes: |█ ▄ █ |
🥇 Biggest allocating functions:
- test_track:/w/demo/test_ok.py:12 -> 39.1KiB
- _compile_bytecode:<frozen importlib._bootstrap_external>:672 -> 7.2KiB
- _call_with_frames_removed:<frozen importlib._bootstrap>:241 -> 4.7KiB
- _is_marked_for_rewrite:/v/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:240 -> 4.5KiB
- _call_with_frames_removed:<frozen importlib._bootstrap>:241 -> 1.8KiB
================================= short test summary info ==================================
MEMORY PROBLEMS demo/test_ok.py::test_memory_exceed
=============================== 1 failed, 1 passed in 0.04s ================================