Pytest.skip для конкретного исключенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Pytest.skip для конкретного исключения

Сообщение Anonymous »

У меня есть несколько тестовых кодов для проверки содержимого целевого файла, например:

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

sc = samplechecker(json_root, 'target_file_to_check', {params})
result = sc.run()
res = sc.getId()
taskIds.append(res['data']['Id'])
assert result
И вы хотите пропустить проверку, если целевой файл не существует, поэтому изменили код:

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

try :
sc = samplechecker(json_root, 'target_file_to_check', {params})
except FileNotFoundError as exc:
pytest.skip(f"!!! Target file {exc.filename} not found !!!")

result = sc.run()
res = sc.getId()
taskIds.append(res['data']['Id'])
assert result
Это отлично работает для этого случая, но у меня есть несколько похожих тестовых модулей, поэтому я бы хотел применить это и ко всем остальным случаям. Поэтому попытался добавить pytest_Exception_interact в conftest.py:

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

in conftest.py :

import pytest

@pytest.hookimpl()
def pytest_exception_interact(node, call, report):
excinfo = call.excinfo
excvalue = excinfo.value

if excinfo.type == FileNotFoundError:
pytest.skip(f"!!! Target file {excvalue.filename} not found !!!")
Но это работает не так, как я хочу. Просто произошел сбой со многими внутренними ошибками.

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

...
INTERNALERROR>   File "/home/jyoun/work/venv_xdr-ac/lib/python3.7/site-packages/pluggy/callers.py", line 208, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/home/jyoun/work/venv_xdr-ac/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/home/jyoun/work/venv_xdr-ac/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/home/jyoun/work/venv_xdr-ac/git/SOC-SampleCode/api_reference/test/conftest.py", line 26, in pytest_exception_interact
INTERNALERROR>     pytest.skip(f"!!! Target file {excvalue.filename} not found !!!")
INTERNALERROR>   File "/home/jyoun/work/venv_xdr-ac/lib/python3.7/site-packages/_pytest/outcomes.py", line 112, in skip
INTERNALERROR>     raise Skipped(msg=msg, allow_module_level=allow_module_level)
INTERNALERROR> Skipped: !!! Target file ../sample/targetfile1 not found !!!
Как мне достичь желаемой цели?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip vs @pytest.mark.xfail в pytest
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как пинг с помощью конкретного сетевого интерфейса (или конкретного IP -адреса источника)?
    Anonymous » » в форуме C#
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Как запустить определенную функцию в конце конкретного теста сценария в pytest BDD с использованием фикстур
    Anonymous » » в форуме Python
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous

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