интроспекция утверждения утечки в вспомогательной функции
pytest
делает замечательноassert introspection
поэтому легко найти различия в строках, особенно если разница в пустом пространстве. Теперь я использую несколько сложный помощник по тестированию, который я использую во многих тестах. У помощника тоже есть свой собственный модуль, и для этого модуля я хочу добавить самоанализ assert.
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 Assert Introspection в файле помощника?
Я нашелдругой, но связанный вопрос к сожалению, я не смог заставить работать решение до сих пор:
import pytest
from .helpers import my_helper
pytest.register_assert_rewrite('helpers.my_helper')