pytest
делает замечательный assert introspection
, так что легко найти различия в строках, особенно если разница в белом пространстве. Теперь я использую несколько сложный тестовый помощник, который я использую во многих тестовых файлах. У помощника есть свой собственный модуль, и для этого модуля я хочу добавить assert introspection.pytest assert introspection в вспомогательной функции
helpers.py:
...
def my_helper():
assert 'abcy' == 'abcx'
test_mycase.py:
from .helpers import my_helper
def test_assert_in_tc():
assert 'abcy' == 'abcx'
def test_assert_in_helper():
my_helper()
отчет тест показывает полезную информацию для утверждает в тестах, но not for asserts within the helper
:
=============================================================== FAILURES ================================================================
___________________________________________________________ test_assert_in_tc ___________________________________________________________
def test_assert_in_tc():
> assert 'abcy' == 'abcx'
E assert 'abcy' == 'abcx'
E - abcy
E ? ^
E + abcx
E ? ^
tests/test_pytest_assert.py:9: AssertionError
_________________________________________________________ test_assert_in_helper _________________________________________________________
def test_assert_in_helper():
> my_helper()
tests/test_pytest_assert.py:13:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def my_helper():
> assert 'abcy' == 'abcx'
E AssertionError
tests/helpers.py:258: AssertionError
======================================================= 2 failed in 0.24 seconds ========================================================
В качестве обходного пути я выводил дополнительную информацию с помощью assert, но вывод по-прежнему выглядит странно и приводит к взрыву кода. Любые идеи, как я могу активировать pytest, утверждают интроспекцию в хелпер-файле?
Я нашел different, but related question, к сожалению, я не мог получить решение работает до сих пор:
import pytest
from .helpers import my_helper
pytest.register_assert_rewrite('helpers.my_helper')
я должен был поместите register_assert_rewrite в файл \ _ \ _ init \ _ \ _. py. теперь он работает ... возможно, лучше всего удалить вопрос, не так ли? – mark
Не удаляйте вопрос, я просто столкнулся с этой проблемой. Итак, thx. – alejandrodnm