我正在为webapp编写测试,有时需要一段时间才能在生产服务器上看到更改。我不希望这些测试失败,但我也不想忽视它们。因此,在对生产服务器运行时,我希望将此类测试标记为xfail,但我无法访问标记中的options对象,该对象可以在testcase内部访问。一旦这些测试通过XPASS,标记将被移除。同样,这些测试也不应该被忽略
有没有可能这样做
@pytest.mark.xfail(
options.getini("base_url") == options.getini("production_server"),
reason="Change not yet deployed to the production server")
def test_apidoc(self, request, base_url):
我能看到的唯一解决办法是:
def test_apidoc(self, request, base_url):
not_production_ready(request)
if request.config.getoption("base_url") == request.config.getini("production_server"):
pytest.xfail("Changes not yet deployed to the production")
pass
但这将立即忽略测试
您可以动态地附加标记-我将引入另一个标记,例如
provisional_xfail
,它只用于一个目的:如果设置与所需的设置匹配并且标记存在,那么测试将添加一个xfail
标记。例如:测试获取
provisional_xfail
标记:相关问题 更多 >
编程相关推荐