pytest的插件,用于管理预期的测试失败
项目描述
pytest-quarantine
pytest的插件,用于管理预期的测试失败。
特性
保存失败测试的列表,以便在未来的测试运行中自动将其标记为预期失败。
为什么?
您已经拥有一个测试套件;做得很好!不过,由于完全可以理解的原因,很多测试都失败了。总有一天,您和/或您的团队会让这些测试通过。但现在,您真正想要做的是划一条界线,避免出现新的测试失败。不幸的是,很难判断它们是在何时引入的,因为测试套件本身就已经在失败了。您可以通过给现有的失败应用 pytest.mark.xfail
来让测试套件通过,但它们的数量实在太多了。
使用此插件,您可以保存所有现有的失败测试到一个文件(隔离区)。在未来测试运行中,此插件将自动将 pytest.mark.xfail
应用到隔离的测试。然后,测试套件将通过,任何新的失败都将导致其失败。
要求
- Python 2.7 或 3.5+
- pytest 4.6 或更高版本
安装
通过从 pip 和 PyPI 在一个活动的 虚拟环境 中安装
$ 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 服务的 隔离功能。 隔离测试的优点和缺点 是对这一概念的简介(与本项目无关)。
存储库是用 Cookiecutter 和 cookiecutter-pytest-plugin 模板生成的。自那时起,布局和工具已经进行了大量修改,但它非常有帮助。
其他一些有用的资源包括
- 开始开源项目 | 开源指南
- 测试与打包 | Hynek Schlawack
- 当维护不是您的工作时维护 Python 项目 | Hynek Schlawack
- 使用 pytest 进行 Python 测试 | Brian Okken | 实用主义书架
- 为 pytest 插件开发更好的测试套件 | Raphael Pierzina
- GitHub 搜索 以获取来自
org:pytest-dev org:pypa org:pycqa org:pallets org:encode
的示例
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
pytest_quarantine-2.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dda53da57c8150e99982f092ceed6d65c85031e0215a5689a3f150801851aaac |
|
MD5 | a2cb5201c127d3e4d1256547eb596572 |
|
BLAKE2b-256 | 955a47db22b0f863bb4f33187e2f97c710dab27d5d542fedcc228b80980a7502 |
pytest_quarantine-2.0.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8bfa7db4f43e85c06449713b9655b23c6e5470b84f1f0200f84b3d945615438b |
|
MD5 | 01042618fd1abaf782a829afa1d61c0b |
|
BLAKE2b-256 | b698f1dc0080ac5f0a69ed016b5b7c953671aaa72667a2de70bfaf3a3e67f674 |