因为Python的强大生态系统,流行的Python测试工具有因而受益。pytest就是其中之一,在其周边的插件也非常丰富。pytest框架可以轻松编写小型测试,然后进行扩展以支持应用程序和库的复杂功能测试。
Pytest允许你在名为test _ * .py的任何文件中定义测试,并将其作为以test_ *开头的函数。然后Pytest将在整个项目中找到所有测试,并在你的控制台中运行pytest时,自动运行它们。
Pytest接受可以在testrunner停止时更改的标志和参数,它如何输出结果,运行哪些测试以及输出中包含哪些信息。它还包括一个可以输入到测试中的set_trace()函数;这将暂停你的测试,并允许你与变量交互,在控制台中灵活调试你的项目。
pytest因其强大的插件生态系统而得名。因为pytest是一个非常流行的测试库,所以多年来创建了许多插件来扩展,定制和增强其功能。这里分享8个流行的pytest插件!
1.pytest-sugar
pytest-sugar改变了pytest的默认外观,增加了一个进度条,并立即显示失败的测试。它不需要配置,只需点击安装pytest-sugar,用pytest运行你的测试,可获得更漂亮,更有用的输出。
2.pytest-cov
pytest-cov增加了对pytest的覆盖支持,以显示哪些代码行已经测试,哪些没有。它还将包括项目的测试覆盖率。
3.pytest-picked
pytest-picked运行基于你已修改但尚未提交给git的代码的测试。安装库并使用pytest-picked运行测试,以仅测试自上次提交以来已更改的文件。
4.pytest-instafail
pytest-instafail修改pytest的默认行为,以立即显示失败和错误,而不是等到pytest完成每个测试运行。
5.pytest-tldr
一个全新的pytest插件,可以将输出限制为你需要的东西。pytest-tldr(tldr代表“太长,未读”),就像pytest-sugar一样,除基本安装外不需要配置。pytest-tldr默认将输出限制为仅用于失败测试的回溯,而忽略了一些令人讨厌的颜色编码,而不是pytest的默认输出,这非常详细。添加-v标志会为喜欢它的人返回更详细的输出。
6.pytest-xdist
pytest-xdist允许你通过-n标志并行运行多个测试:例如,pytest -n 2将在两个CPU上运行测试。这可以显著加快测试速度。它还包括--looponfail标志,它将自动重新运行你的失败测试。
7.pytest-django
pytest-django为Django应用程序和项目添加了pytest支持。具体来说,pytest-django引入了使用pytest fixture测试Django项目的能力,省略了导入unittest和复制/粘贴其他样板测试代码的需要,并且比标准的Django测试套件运行得更快。
8.django-test-plus
django-test-plus不是特定于pytest,但它现在支持pytest。它包含你自己的测试可以继承的TestCase类,并使你能够使用更少的击键来键入频繁的测试用例,例如检查特定的HTTP错误代码。