역 추적하는 방법을 :pytest 사용자 정의 주장, 나는이 같은 간단한 테스트 코드를 가지고
test_assert.py
import helper
def test_assert():
assert helper.find_event(helper.HelperEvents("event","this is info")) is True
이 helper.py
helper_list = []
class HelperEvents:
def __init__(self, event, info):
self.event = event
self.info = info
def add_event(event):
helper_list.append(event)
def find_event(event):
try:
helper_list.index(event, 0, 100)
except ValueError:
return False
return True
이 나에게 AssertionError를 줄 것이다 like :
def test_assert():
> assert helper.find_event(helper.HelperEvents("event","this is info")) is True
E AssertionError: assert False is True
E + where False = <function find_event at 0x158c9b0>(<test_asserts.helper.HelperEvents instance at 0x157d488>)
E + where <function find_event at 0x158c9b0> = helper.find_event
E + and <test_asserts.helper.HelperEvents instance at 0x157d488> = <class test_asserts.helper.HelperEvents at 0x1670188>('event', 'this is info')
E + where <class test_asserts.helper.HelperEvents at 0x1670188> = helper.HelperEvents
test_assert.py:5: AssertionError
난 정말이 같은 해당를 단순화 할 : 않고 AssertionError를 이벤트 : 이벤트 정보 :이 정보는
이렇게하려면, 나는 초기화 평 파일을 만든 목록에서 찾을 수 없습니다입니다
import pytest
pytest.register_assert_rewrite('test_asserts')
과 conftest.py 파일 :
import pytest
@pytest.hookimpl(tryfirst=True)
def pytest_assertrepr_compare(op, left, right):
print "Left:", left
print "op:", op
print "Right:", right
return [str(left), op, str(right)]
다음 나에게 제공합니다
def test_assert():
> assert helper.find_event(helper.HelperEvents("event","this is info")) is True
E assert False
E is
E True
test_assert.py:5: AssertionError
find_event 호출의 결과 만 제공되는 경우 어떻게 이벤트에서 정보를 추출합니까?