我使用的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