pytest-memrayΒΆ
A pytest plugin for easy integration of memray in your test suite. It can produce
reports like:
$ pytest --memray /w/demo
/v/share/python3.13/site-packages/pytest_cython/__init__.py:2: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
from pkg_resources import get_distribution
Traceback (most recent call last):
File "/v/bin/pytest", line 8, in <module>
sys.exit(console_main())
~~~~~~~~~~~~^^
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 201, in console_main
code = main()
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 156, in main
config = _prepareconfig(args, plugins)
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 342, in _prepareconfig
config = pluginmanager.hook.pytest_cmdline_parse(
pluginmanager=pluginmanager, args=args
)
File "/v/share/python3.13/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/v/share/python3.13/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/v/share/python3.13/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/v/share/python3.13/site-packages/pluggy/_callers.py", line 122, in _multicall
teardown.throw(exception) # type: ignore[union-attr]
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/v/share/python3.13/site-packages/_pytest/helpconfig.py", line 112, in pytest_cmdline_parse
config = yield
^^^^^
File "/v/share/python3.13/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 1146, in pytest_cmdline_parse
self.parse(args)
~~~~~~~~~~^^^^^^
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 1527, in parse
self._preparse(args, addopts=addopts)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/v/share/python3.13/site-packages/_pytest/config/__init__.py", line 1417, in _preparse
self.known_args_namespace = self._parser.parse_known_args(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
args, namespace=copy.copy(self.known_args_namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/v/share/python3.13/site-packages/_pytest/config/argparsing.py", line 155, in parse_known_args
return self.parse_known_and_unknown_args(args, namespace=namespace)[0]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/v/share/python3.13/site-packages/_pytest/config/argparsing.py", line 169, in parse_known_and_unknown_args
optparser = self._getparser()
File "/v/share/python3.13/site-packages/_pytest/config/argparsing.py", line 128, in _getparser
arggroup.add_argument(*n, **a)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/v/lib64/python3.13/argparse.py", line 1517, in add_argument
return self._add_action(action)
~~~~~~~~~~~~~~~~^^^^^^^^
File "/v/lib64/python3.13/argparse.py", line 1724, in _add_action
action = super(_ArgumentGroup, self)._add_action(action)
File "/v/lib64/python3.13/argparse.py", line 1531, in _add_action
self._check_conflict(action)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/v/lib64/python3.13/argparse.py", line 1673, in _check_conflict
conflict_handler(action, confl_optionals)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/v/lib64/python3.13/argparse.py", line 1682, in _handle_conflict_error
raise ArgumentError(action, message % conflict_string)
argparse.ArgumentError: argument --benchmark-columns: conflicting option string: --benchmark-columns