Pytest: использование приборов в setup_method - PullRequest
1 голос
/ 08 марта 2019

Следуя этой схеме: https://docs.pytest.org/en/latest/xunit_setup.html

Как мне использовать / ввести fixture_foo в setup_method

class TestClassX:
    def setup_method(self, method):
        # I need `fixture_foo` here

    def teardown_method(self, method):
        # N/A

    def test_cool(self, fixture_foo):
        # Why can `fixture_foo` be injected here and not in `setup_method`?

1 Ответ

1 голос
/ 09 марта 2019

Чтобы получить доступ к приборам, вам нужно переключиться на прибор в стиле pytest. Эквивалент setup_method может быть достигнут следующим образом:

@pytest.fixture
def f():
    return 'ohai'


class Test:
    @pytest.fixture(autouse=True)
    def setup_method_fixture(self, request, f):
        self.f = f
        self.method_name = request.function.__name__

    def test(self):
        assert self.method_name == 'test'
        assert self.f == 'ohai'

Это autouse устройство будет вызываться один раз для каждого метода теста внутри класса

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