如何从标记为模块作用域的测试文件中的灯具调用保存在conftest.py中的灯具?

时间:2020-04-03 08:36:49

标签: python-3.x pytest

我使用的fixture函数在conftest.py中运行pytest时会为我的测试添加一个参数。

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

尽管现在我在模块级别使用了Fixture函数,所以我可以初始化每个会话运行一次的一些常用参数和操作

@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_init函数中的global_out,我将无法执行此操作,因为模块级的固定装置是在conftest.py中的固定装置之前执行的,该固定装置正在检索参数。从global_init_tests内部可以访问artifacts_output的值吗?我尝试调用artifacts_output,但收到错误object has no attribute artifacts_output

0 个答案:

没有答案