在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的字典,並且具有當前測試參數的值。 –