我想在setupone
夹具的外部使用产品变量。我想在skipif
标记中的test_title.py中使用它来进行条件跳过(如果产品名称满足,则运行测试用例)。
conftest.py
def pytest_addoption(parser):
parser.addoption("--browser_name", action="store", default="chrome")
parser.addoption("--env", action="store", default="Production")
parser.addoption("--product_name", nargs = '*', type = str, action ="store", default="chitale")
products_list = getProductList()
@pytest.fixture(scope='class', params = products_list)
def setupone(request):
browser = request.config.getoption("browser_name")
env_name = request.config.getoption("env")
product = request.param
(getProductList()返回存储在产品列表中的[“product1”、“product2”、“product3”)
BaseOne.py
@pytest.mark.usefixtures("setupone")
class BaseOne:
pass
测试标题.py
from conftest import prod
class TestStoreTitle(BaseOne):
@pytest.mark.skipif(prod not in ["product1", "product2", "product3"], reason="test case doesn't apply for desired product")
def test_Store_Title(self):
pass
我想在函数之外使用来自setupone
的产品,如:
def pytest_addoption(parser):
parser.addoption("--browser_name", action="store", default="chrome")
parser.addoption("--env", action="store", default="Production")
parser.addoption("--product_name", nargs = '*', type = str, action ="store", default="chitale")
products_list = getProductList()
@pytest.fixture(scope='class', params = products_list)
def setupone(request):
browser = request.config.getoption("browser_name")
env_name = request.config.getoption("env")
product = request.param
prod = product
另一种方法是仅从其夹具
setupone
访问产品setupone
skip_product_not_in_list
skip_product_not_in_list
setupone
的当前产品不在通缉名单中,请通过pytest.skip()跳过它输出
test_Store_Title_all_products
,它测试了所有产品。对于test_Store_Title_skip_products
,我们在其中定义了一个自定义列表,我们可以看到它跳过了"product2"
,因为它不在列表中李>相关问题:
相关问题 更多 >
编程相关推荐