Неправильный объект передан к крючку Pytest
Я только начал иметь дело с ловушками pytest, и я немедленно столкнулся со странным поведением pytest_runtest_protocol(item, nextitem)
перехват в случае вызова pytest из кода Python. Я пытался воспроизвести код с /questions/17212844/kak-poluchit-nazvanie-testa-i-rezultat-testa-vo-vremya-vyipolneniya-v-pytest/17212848#17212848, но в pytest_runtest_protocol
myPlugin
Объект передается как первый аргумент, а не как тестовый элемент (см. скриншот).
После этой строки я получаю исключение, потому что MyPlugin
объект не имеет ihook
имущество.
Эта проблема не возникает в случае Athoner способов вызова Pytest (с кодом хука в conftest.py
).
Проект имеет только два файла.
test_main.py
def test_first():
assert 2 + 2 == 4
def test_second():
assert 2 + 2 == 4
hooks.py
import pytest
from _pytest.runner import runtestprotocol
class MyPlugin(object):
def pytest_runtest_protocol(item, nextitem):
reports = runtestprotocol(item, nextitem=nextitem)
for report in reports:
if report.when == 'call':
print '\n%s --- %s' % (item.name, report.outcome)
return True
def main():
pytest.main(plugins=[MyPlugin()])
if __name__ == '__main__':
main()
Возможно ли решить эту проблему?
Версия pytest: 3.2.1