[英]Pytest: Inherit fixture parameters
我有一个夹具充当开关来参数化测试以在两种状态(在线/离线)下运行。 如果测试处于离线模式,这还会将自定义标记应用于测试。
@pytest.fixture(
params=['online', pytest.param('offline', marks=pytest.mark.jira('388', '828', '833', '918'))]
)
def network(request):
""" A switch parameter that parametrizes test for testing online and offline functionality. """
return request.param
我有一个测试,如果测试也在离线模式下运行,我希望 append 附加参数。 由于我没有使用network
夹具,因此不包括标记(但我希望它们包括在内)。
@pytest.mark.smoke
@pytest.mark.jira('387', '772', '1009')
@pytest.mark.parametrize('network', ['online', pytest.param('offline', marks=pytest.mark.jira('1036'))])
def test_crud(network):
...
我的问题是,如何将夹具标记和@pytest.mark.parametrize
标记应用于测试?
我通过添加解决了这个问题
def pytest_runtest_setup(item):
if item.callspec.params.get('network') == 'offline':
item.add_marker(pytest.mark.jira('388', '828', '833', '918'))
到conftest.py
并删除network
装置以支持将@pytest.mark.parametrize(.network', ...)
添加到每个测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.