跳转到主要内容

pytest的插件,用于管理预期的测试失败

项目描述

pytest-quarantine

PyPI version Python versions Linux build status Windows build status Test coverage

pytest的插件,用于管理预期的测试失败。

特性

保存失败测试的列表,以便在未来的测试运行中自动将其标记为预期失败。

为什么?

您已经拥有一个测试套件;做得很好!不过,由于完全可以理解的原因,很多测试都失败了。总有一天,您和/或您的团队会让这些测试通过。但现在,您真正想要做的是划一条界线,避免出现新的测试失败。不幸的是,很难判断它们是在何时引入的,因为测试套件本身就已经在失败了。您可以通过给现有的失败应用 pytest.mark.xfail 来让测试套件通过,但它们的数量实在太多了。

使用此插件,您可以保存所有现有的失败测试到一个文件(隔离区)。在未来测试运行中,此插件将自动将 pytest.mark.xfail 应用到隔离的测试。然后,测试套件将通过,任何新的失败都将导致其失败。

要求

  • Python 2.7 或 3.5+
  • pytest 4.6 或更高版本

安装

通过从 pipPyPI 在一个活动的 虚拟环境 中安装

$ pip install pytest-quarantine

用法

运行您的测试套件并将失败的测试保存到 quarantine.txt

$ pytest --save-quarantine=quarantine.txt
============================= test session starts ==============================
...
collected 1380 items

...

---------------------- 661 items saved to quarantine.txt -----------------------
============== 629 failed, 719 passed, 32 error in 312.56 seconds ==============

quarantine.txt 添加到您的版本控制系统。

以隔离的测试标记为预期失败的测试运行您的测试套件

$ pytest --quarantine=quarantine.txt
============================= test session starts ==============================
...
collected 1380 items
added mark.xfail to 661 of 661 items from quarantine.txt

...

================== 719 passed, 661 xfailed in 300.51 seconds ===================

当预期的失败最终通过时(即,它们被计算为 xpassed),可以从 quarantine.txt 中手动删除,或者使用 --save-quarantine 自动删除。请注意,后者将覆盖隔离区的所有内容,因此最好仅在运行整个测试套件时使用它。

获取帮助

请在 问题跟踪器 中提交问题、错误报告和功能请求。

贡献

对代码和文档的改进非常欢迎。有关详细信息,请参阅 如何贡献

行为准则

与本项目互动的所有人都应遵守 贡献者公约

许可

在 MIT 许可证下分发。

致谢

该项目最初在 EnergySage 开发,以帮助我们的 Python 3 迁移。我们希望其他人也能从中受益。

该名称灵感来源于 Bamboo CI/CD 服务的 隔离功能隔离测试的优点和缺点 是对这一概念的简介(与本项目无关)。

存储库是用 Cookiecuttercookiecutter-pytest-plugin 模板生成的。自那时起,布局和工具已经进行了大量修改,但它非常有帮助。

其他一些有用的资源包括

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

pytest_quarantine-2.0.0.tar.gz (14.9 kB 查看哈希值)

上传时间

构建分布

pytest_quarantine-2.0.0-py2.py3-none-any.whl (6.8 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持