Я не уверен, почему pytest
решил вызывать функцию настройки модуля в хуке pytest_runtest_setup
, который запускается один раз для каждого теста, а не в модульном модуле autouse, но здесь это :
@hookimpl(trylast=True)
def pytest_runtest_setup(item):
if is_potential_nosetest(item):
if not call_optional(item.obj, "setup"):
# call module level setup if there is no object level one
call_optional(item.parent.obj, "setup")
# XXX this implies we only call teardown when setup worked
item.session._setupstate.addfinalizer((lambda: teardown_nose(item)), item)
Это означает, что вам нужно переименовать функции настройки / демонтажа в setup_module()
/ teardown_module()
.Если вы используете Linux / MacOS, вы можете использовать sed
в сочетании с grep
для пакетного переименования:
$ grep -lr "\(def setup():\|def teardown():\)" | \
xargs sed -i 's/def setup():/def setup_module():/g;s/def teardown():/def teardown_module():/g'