Отфильтровать ненужные строки в трассировках стека pytest?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Отфильтровать ненужные строки в трассировках стека pytest?

Сообщение Anonymous »

Pytest был установлен с помощью pip install pytest.
Pytest запускается в командной строке (W10), а не из IDE. . Обычно:

Код: Выделить всё

> pytest --random-order -k test_my_test_module
(NB --random-order происходит из пакета pytest-random-order. Я использую этот ключ каждый раз, когда запускаю pytest, без исключения, до такой степени, что я на самом деле запускайте pytest, используя скрипт Python, который делает это)
Однако для пояснения, простой запуск таким образом дает тот же результат:

Код: Выделить всё

> pytest -k test_my_test_module
< /code>
[b] Я теперь не знаю, получают ли другие люди, такие как этот, явно включающий очень длинный путь кода через внутреннюю часть Pytest, которые абсолютно не представляют интереса для Пользователь, или это необычно. Должно ли быть меньше подробностей внутренних средств? Похоже, они не оказывают влияния на трассировку стека, которую я ищу. Вот пример: < /p>
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, включая ерунду про «pluggy» и т. д. каждый раз, когда я пытаюсь проследить, что могло произойти.
Мне было бы полезно узнать, получают ли люди обычно что-то отличное[/b] от этого во время обычных запусков pytest из командной строки. Это нетипичный результат? В настоящее время у меня нет возможности узнать.
В модуле ведения журнала Python есть метод в самом базовом классе Formatter (суперкласс всех остальных), который вы можете реализовать (базовая версия ничего не делает): formatStack(stack_info). Это дает вам один параметр — многострочную строку, которую вы можете редактировать, чтобы удалить ненужные строки. Если у Pytest нет «официального» способа настройки средств форматирования журналов для вырезания неинтересных строк стека, мне придется попытаться выяснить, является ли это одним из способов попробовать что-то сделать.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ack-traces
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отфильтровать ненужные строки в трассировках стека pytest? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Отфильтровать ненужные строки в трассировках стека pytest?
    Anonymous » » в форуме Python
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Отфильтровать ненужные строки в трассировках стека pytest?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Отфильтровать ненужные строки в трассировках стека pytest?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Отфильтровать ненужные строки в трассировках стека pytest?
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»