pytest插件
我们是pytest的忠实拥护者,并将其用作工作和开源项目的默认Python测试工具。 在本月的Python专栏文章中,我们分享了为什么我们喜欢pytest以及为什么使用pytest进行测试非常有趣的一些插件。
什么是pytest?
正如该工具的网站所说:“ pytest框架使编写小型测试变得容易,但可以扩展以支持应用程序和库的复杂功能测试。”
test_*.py
test_*
以及作为以test_*
开头的函数。
然后,Pytest将在整个项目中找到所有测试,并在控制台中运行pytest
时自动运行它们。
Pytest接受在testrunner停止,其输出结果的方式,运行的测试以及输出中包括哪些信息时可能会更改的标志和参数 。
它还包括一个set_trace()
函数,可以将其输入到测试中。
这将暂停测试,并允许您与变量进行交互,否则将在控制台中“四处循环”以调试项目。
pytest最好的方面之一是其强大的插件生态系统。 由于pytest是一个如此受欢迎的测试库,多年来,已经创建了许多插件来扩展,定制和增强其功能。 这八个插件是我们的最爱。
很棒8
1. 焦糖
pytest-sugar
更改pytest-sugar
的默认外观,添加进度条,并立即显示失败的测试。 它不需要任何配置。 只需pip install pytest-sugar
,使用pytest
运行测试,然后享受更漂亮,更有用的输出。
2. pytest-cov
pytest-cov
添加了对pytest的覆盖支持,以显示哪些代码行已经过测试,哪些代码行未测试过。 它还将包括项目的测试覆盖率百分比。
3. pytest-picked
pytest-picked
根据您已修改但尚未提交给git
代码运行测试。 安装该库并使用pytest --picked
运行您的测试- pytest --picked
测试自上次提交以来已更改的文件。
4. pytest-instafail
pytest-instafail
修改pytest的默认行为以立即显示失败和错误,而不是等到pytest完成每个测试的运行。
5. pytest-tldr
一个全新的pytest插件,可将输出限制为您所需的东西。 pytest-tldr
( tldr
表示“太长,没有读”),就像pytest-sugar
,除了基本安装外,不需要任何配置。 pytest-tldr
tldr的默认输出不是pytest的非常冗长的默认输出,而是将输出限制为仅对失败的测试进行回溯,并省略了一些令人讨厌的颜色编码。 添加-v
标志对于喜欢它的人返回更详细的输出。
6. pytest-xdist
pytest-xdist
允许您通过-n
标志并行运行多个测试:例如, pytest -n 2
可以在两个CPU上运行您的测试。 这样可以大大加快测试速度。 它还包括--looponfail
标志,它将自动重新运行失败的测试。
7. pytest-django
pytest-django
向Django应用程序和项目添加了pytest支持。 具体来说, pytest-django
引入了使用pytest固定装置测试Django项目的功能,无需导入unittest
和复制/粘贴其他样板测试代码,并且比标准Django测试套件运行得更快。
8. django-test-plus
django-test-plus
并非特定于pytest,但现在支持pytest。 它包括您自己的TestCase
类,您的测试可以继承该类,并使您可以使用更少的击键输入频繁的测试用例,例如检查特定的HTTP错误代码。
我们上面提到的库绝不是扩展pytest用法的唯一选择。 有用的pytest插件的前景广阔。 查看“ Pytest插件兼容性”页面以自己进行探索。 您最喜欢哪个?
pytest插件