作为背景,我们的测试用例在同一产品的20多个部署中运行,在其中一些部署中,测试用例由于已知错误而失败,而在另一些部署中,测试用例通过
任何人都可以为一个特定的环境提供一个最好的“xfail”测试用例的建议吗
我们已经可以通过env
fixture甚至函数调用访问特定测试运行所针对的环境。我们只需要一种干净且合乎逻辑的方法来完成xfail测试。我们希望这样做:
我们想要什么(或类似的东西,有装饰师):
@pytest.mark.xfail(envs=["my_env_1", "my_env_18"], reason="Bug/JIRA-TICKET")
def test_my_test_case(...fixtures...):
# some code
我们当前的解决方案: 这感觉很不舒服
def test_my_test_case(env, ...fixtures...):
if env in ["my_env_1", "my_env_18"]:
pytest.xfail(reason="Bug/Ticket-Number")
欢迎任何建议。谢谢大家!
为此,您可以引入自己的标记。例如:
测试用例
分析
myxfail
标记使用以下内容将文件
conftest.py
添加到项目/测试根目录中:寄存器
myxfail
标记在
pytest.ini
配置中:样本执行
当然,您仍然必须自己实现
env
处理。用您自己的impl替换if "my_env_1" in envs
条件(通过fixture/命令行arg等传递env
)仅为了完整性-您还可以直接向
xfail
添加条件,例如:(与@hoefling回答中的设置相同)
这将产生相同的输出:
诚然,这没有公认的答案那么好,但可以用于简单的情况
相关问题 更多 >
编程相关推荐