Вы можете вызвать прибор, сохраненный в conftest.py, из прибора в тестовом файле, который помечен как область действия модуля? - PullRequest
0 голосов
/ 03 апреля 2020

Я использую функцию фикстуры, которая принимает аргумент для моих тестов при запуске pytest, в моем conftest.py

def artifacts_output(requests)
    request.cls.artifacts_output = request.config.getoption("--artifacts_output")

В моем тестовом файле я могу получить доступ к этому без проблем в моей функции настройки

@pytest.mark.usefixtures("artifacts_output")
class baselineTests(unittest.TestCase):

    def setup(self):
        global_out = self.artifacts_output
        # more code and tests

Хотя сейчас я использую функцию фикстуры на уровне модуля, поэтому я могу инициализировать некоторые общие параметры и операции, которые я запускаю один раз за сеанс

@pytest.mark.usefixtures("artifacts_output")
class baselineTests(unittest.TestCase):

    @pytest.fixture(scope="module")
    global_init_tests(self):
        #init values for all tests and operations to do once per session

    def setup(self):
        global_out = self.artifacts_output
        # more code and tests

Проблема заключается в том, что если я хочу получить доступ к global_out внутри функции global_init, я не могу этого сделать, потому что фикстура на уровне модуля выполняется перед фикстурой в conftest.py, который извлекает параметр. Есть ли способ из global_init_tests получить доступ к значению artifacts_output? Я попытался вызвать artifacts_output, но получаю ошибку object has no attribute artifacts_output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...