
Company News
Meet the Socket Team at RSAC and BSidesSF 2026
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.
pytest-memray
Advanced tools
pytest-memray is a pytest plugin for easy integration of memray.
pytest-memray requires Python 3.8 or higher and can be easily installed using most common Python packaging tools. We recommend installing the latest stable release from PyPI with pip:
pip install pytest-memray
You can find the latest documentation available here.
To use the plugin in a pytest run, simply add --memray to the command line invocation:
pytest --memray tests
After the test suite runs you'll see a memory report printed:
=================================== test session starts ====================================
platform linux -- Python 3.10.4, pytest-7.1.2, pluggy-1.0.0
cachedir: /v/.pytest_cache
rootdir: /w
plugins: memray-1.1.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: 54.9KiB
📏 Total allocations: 71
📊 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
- _call_with_frames_removed:<frozen importlib._bootstrap>:241 -> 1.8KiB
- _is_marked_for_rewrite:/v/lib/python3.10/site-packages/_pytest/assertion/rewrite.py:240 -> 1.1KiB
================================= short test summary info ==================================
MEMORY PROBLEMS demo/test_ok.py::test_memory_exceed
=============================== 1 failed, 1 passed in 0.01s ================================
--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--memray-bin-path - path where to write the memray binary dumps (by default a
temporary folder)--memray-bin-prefix - prefix to use for the binary dump (by default a random UUID4
hex)--stacks=STACKS - Show the N stack entries when showing tracebacks of memory allocations--native - Show native frames when showing tracebacks of memory allocations (will be slower)--trace-python-allocators - Record allocations made by the Pymalloc allocator (will be slower)--fail-on-increase - Fail a test with the `limit_memory`` marker if it uses
more memory than its last successful runmemray(bool) - activate memray trackingmost-allocations(string) - show the N tests that allocate most memory (N=0 for all)hide_memray_summary(bool) - hide the memray summary at the end of the executionstacks(int) - Show the N stack entries when showing tracebacks of memory allocationsnative(bool)- Show native frames when showing tracebacks of memory allocations (will be slower)trace_python_allocators(bool) - Record allocations made by the Pymalloc allocator (will be slower)fail-on-increase(bool) - Fail a test with the limit_memory marker if it
uses more memory than its last successful runpytest-memray is Apache-2.0 licensed, as found in the LICENSE file.
This project has adopted a Code of Conduct. If you have any concerns about the Code, or behavior which you have experienced in the project, please contact us at opensource@bloomberg.net.
If you believe you have identified a security vulnerability in this project, please send email to the project team at opensource@bloomberg.net, detailing the suspected issue and any methods you've found to reproduce it.
Please do NOT open an issue in the GitHub repository, as we'd prefer to keep vulnerability reports private until we've had an opportunity to review and address them.
We welcome your contributions to help us improve and extend this project!
Below you will find some basic steps required to be able to contribute to the project. If you have any questions about this process or any other aspect of contributing to a Bloomberg open source project, feel free to email opensource@bloomberg.net, and we'll get your questions answered as quickly as we can.
Since this project is distributed under the terms of an open source license, contributions that you make are licensed under the same terms. In order for us to be able to accept your contributions, we will need explicit confirmation from you that you are able and willing to provide them under these terms, and the mechanism we use to do this is called a Developer's Certificate of Origin (DCO). This is very similar to the process used by the Linux(R) kernel, Samba, and many other major open source projects.
To participate under these terms, all that you must do is include a line like the following as the last line of the commit message for each commit in your contribution:
Signed-Off-By: Random J. Developer <random@developer.example.org>
The simplest way to accomplish this is to add -s or --signoff to your git commit
command.
You must use your real name (sorry, no pseudonyms, and no anonymous contributions).
The project requires a Linux OS to work. To set up a DEV environment use tox (or directly the make targets). You can use Docker to run the test suite on non Linux as in (you can parametrize tox by passing additional arguments at the end):
docker-compose run --rm test tox
FAQs
A simple plugin to use with pytest
We found that pytest-memray demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.

Research
/Security News
Malicious Packagist packages disguised as Laravel utilities install an encrypted PHP RAT via Composer dependencies, enabling remote access and C2 callbacks.

Research
/Security News
OpenVSX releases of Aqua Trivy 1.8.12 and 1.8.13 contained injected natural-language prompts that abuse local AI coding agents for system inspection and potential data exfiltration.