Короче такая вот беда.
Жили были тесты на pytest 3 и pytest bdd, и как то там работали.
Начал тут обновлять env библиотеки, и попал на нехорошее поведение, суть в чем.
В модуле где определены pytest_bdd слова указана фикстура для сохранения контекста между тестами (вобще хочется отдельно поблагодарить людей которые писали сей сраный инструмент)
@pytest.fuxture(scope='module')
def ctx():
return {}
на локальных машинах, все работает отлично, с --setup-trace я вижу что она вызывается один раз, и сохраняет свое состояние на протяжении жизни модуля - никаких в общем то вопросов.
Но вот в CI Jenkins происходят чудеса: эта же фикстура ведет себя как будто она со scope=‘function’, и соотвествтенно вызывается на каждый тест, теряя при этом всю необходимую информацию.
Сам Jenkins обычный контейнер с linux python3, в jobs которого на sh вешается дефолтный run тестов.
sh """#!/bin/bash
set -euo pipefail
echo "**************************************************"
CONFIG_FILE=${parameters.config_file}
export CONFIG_FILE
echo "Running test suite : ${suiteName}"
py.test ${parameters.pytest_args} ${parameters.execution_directory} --alluredir ${parameters.allure_report_directory} --config ${parameters.config_file} -k ${suiteName}
echo "**************************************************"
"""
Возможно кто-то сталкивался с таким поведением и подскажет куда копать. Заранее спасибо.