如何解决Python / Pytest夹具值取决于测试编号
我创建了一个@ pytest.fixture(scope =“ class”),在其中添加了硒中的步骤:
@pytest.fixture(scope="class")
def test_setup1(test_setup):
driver.click_element()
driver.enter_price()
driver.enter_year('1997') <--- test-dependent element
many steps
...
元素之一例如driver.enter_year()取决于测试中的元素? 例如:
def test_order_1 (self,test_setup1):
date = 1998
assert element_in_alert('Succes')
def test_order_2 (self,test_setup1):
date = 1994
assert element_in_alert('Succes')
解决方法
是的,您可以使用indirect fixture parametrization:
@pytest.fixture(scope="class")
def test_setup1(request,test_setup):
driver.click_element()
driver.enter_price()
driver.enter_year(request.param)
@pytest.mark.parametrize("test_setup1",["1998"],indirect=True)
def test_order_1 (self,test_setup1):
assert element_in_alert('Succes')
@pytest.mark.parametrize("test_setup1",["1994"],indirect=True)
def test_order_2(test_setup1):
assert element_in_alert('Succes')
此参数通过将参数写入request.param
来参数化灯具。通常,这用于将多个参数值传递给灯具,如果除了该值以外您的测试是相似的,您还可以执行以下操作:
@pytest.mark.parametrize("test_setup1",["1994","1998"],indirect=True)
def test_order(test_setup1):
assert element_in_alert('Succes')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。