在 pytest 中,我可以传递参数进行测试(使用固定装置或装饰器@pytest.fixture(params=list-of-params)
)。
测试完成后,如果测试失败,则通过的参数会显示在结果中,如TestCheckoutPage.test_address_edit[True]
或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
这会引发一个错误,说没有param
in FixtureRequest
。
有没有办法可以取回该参数?我试图让 Selenium 在测试失败时截取屏幕截图,但是因为带有参数的测试具有相同的名称和类名等等,它正在为第一次执行编写一个文件,然后在第二次、第三次、... ,时间。所以我想将参数添加到文件名中以避免这种情况。
谢谢!