Pytest запускается в командной строке (W10), а не из IDE. . Обычно:
Код: Выделить всё
> pytest --random-order -k test_my_test_module
Я нашел эту страницу и попробовал такие параметры, как --tb=short и -q. Кажется, они не влияют на трассировку стека, которую я ищу. Вот пример:
Код: Выделить всё
Stack (most recent call last):
File "C:\Users\Mike\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\Mike\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "D:\apps\Python\virtual_envs\dev_organiser\Scripts\pytest.exe\__main__.py", line 7, in
sys.exit(console_main())
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\config\__init__.py", line 206, in console_main
code = main()
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\config\__init__.py", line 178, in main
ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\main.py", line 332, in pytest_cmdline_main
return wrap_session(config, _main)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\main.py", line 285, in wrap_session
session.exitstatus = doit(config, session) or 0
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\main.py", line 339, in _main
config.hook.pytest_runtestloop(session=session)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\_pytest\main.py", line 364, in pytest_runtestloop
item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
File "D:\apps\Python\virtual_envs\dev_organiser\lib\site-packages\pluggy\_manager.py", line 120, in _hookexec
...
Возможно, по какой-то причине подобные явления специфичны для моей установки. Но мне действительно не нужна вся эта чушь про "плагги" и т.п. каждый раз, когда я пытаюсь отследить, что могло произойти.
Мне было бы полезно узнать, люди обычно получают что-то отличное от этого во время обычных запусков pytest из командной строки. Это нетипичный результат? В настоящее время у меня нет возможности узнать.
В модуле ведения журнала Python есть метод в самом базовом классе Formatter (суперкласс всех остальных), который вы можете реализовать (базовая версия ничего не делает): formatStack(stack_info). Это дает вам один параметр — многострочную строку, которую вы можете редактировать, чтобы удалить ненужные строки. Если у Pytest нет «официального» способа настройки средств форматирования журналов для вырезания неинтересных строк стека, мне придется попытаться выяснить, является ли это одним из способов попробовать что-то сделать.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ack-traces