在pytest中,我可以传递参数来测试(使用灯具或修饰器@pytest.fixture(params=list-of-params)
)。在pytest中,我如何访问传递给测试的参数?
测试完成后,如果测试失败,则传递的参数会显示在结果中,如TestCheckoutPage.test_address_edit[True]
或False
(如果为false)。
如何访问这些参数并将它们添加到终结器中? request.param
似乎并没有工作,即使是制作夹具时,你将如何获取参数:
@pytest.fixture(params=[True, False])
def user(request):
return request.param
工程。但是,如果我尝试将它传递给一个测试:
class TestClass:
def test_something(self, user):
pass
,然后使用autouse夹具,以收集信息就可以了:
@pytest.fixture(autouse=True)
def set_driver(self, request):
print request.param
抛出一个错误,说有在FixtureRequest
没有param
。
有没有一种方法可以得到该参数?我试图让Selenium在测试失败时截取屏幕截图,但是因为带有参数的测试具有相同的名称和类名,并且它正在为第一次执行写入一个文件,然后第二次,第三次覆盖它。 ,时间周围。所以我想将这个参数添加到文件名中以避免这种情况。
谢谢!
'request.node.callspec.params'是一个类似kwargs的字典,并且具有当前测试参数的值。 –