pytest_sessionstart / fini sh не печатает - PullRequest
1 голос
/ 21 января 2020

Это сводит меня с ума. Я следую основному примеру c, опубликованному в нескольких местах, и он просто не печатает на консоль, и я не знаю, что еще можно настроить в интерфейсе, чтобы он работал.

import unittest, pytest

print("module")

def pytest_sessionstart(session):
  print("before")

@pytest.hookimpl(tryfirst=True, hookwrapper=True)
def pytest_runtest_makereport(item, call):
  outcome = yield
  result = outcome.get_result()
  if result.when == 'call':
    item.session.results[item] = result

def pytest_sessionfinish(session, exitstatus):
  print("after")

class TestFoo(unittest.TestCase):
  def test_foo(self):
    pass

Тогда:

#> pytest tests/test.py -s
======================================================== test session starts =========================================================
platform darwin -- Python 3.7.3, pytest-5.3.2, py-1.8.1, pluggy-0.13.1
rootdir: /Users/sean
collecting ... module
collected 1 item                                                                                                                     

tests/test.py .

========================================================= 1 passed in 0.01s ==========================================================

Итак ... чувак, где мой вывод? Я получил «модуль», который я напечатал, но не «до» или «после». Я уверен, что мне чего-то не хватает, если c.

1 Ответ

2 голосов
/ 21 января 2020

pytest_sessionstart и pytest_sessionfinish являются перехватчиками инициализации , вызываемыми для плагинов и conftest.py файлов.

Переместите их определения в файл conftest.py рядом с test.py.

...