使用pytest.夹具setup_类上的作用域函数

2024-09-27 19:13:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个测试用例模块TestClassA,TestClassB。在teseclassA中的测试_1_需要资源_a,我使用fixture,这样我可以在执行testcase之前调用resource_a并传递参数。如何在TestClassB中的setup_类上使用相同的fixture,以便所有的testcase 所以fixture可以在TestClassB中所有testcase之前调用一次

import pytest

@pytest.fixture(scope='function')
def resource(request):
    print('resources_a_setup()')
    return request.param

class TestClassA:
    @classmethod
    def setup_class(cls):
        print('\nsetup_class()')

    @classmethod
    def teardown_class(cls):
        print('\nteardown_class()')

    @pytest.mark.parametrize('resource', [dict(), dict(name=1)], indirect=['resource'])
    def test_1_that_needs_resource_a(self, resource):
        assert resource == dict()
        print(f'\ntest_1_that_needs_resource_a(), {resource}')


class TestClassB:
    ## I would like to call resource fixture with passing some parameter on setup_class here
    @classmethod
    def setup_class(cls):
        print('\nsetup_class()')

    @classmethod
    def teardown_class(cls):
        print('\nteardown_class()')

    def test_1_that_needs_resource_a(self):
        print('\ntest_1_that_needs_resource_a()')

Tags: thatpytestdefsetuptestcasefixtureresourcedict

热门问题