pytest 插件开发,pytest框架实战原理

  pytest 插件开发,pytest框架实战原理

  Pytest插件

  我们是pytest忠实的虚拟udon面,并把它作为工作和开源项目的默认Python测试工具。在本月的Python专栏中,我们分享了一些关于我们为什么喜欢pytest以及为什么用pytest进行测试非常有趣的插件。

  pytest是什么?正如该工具的网站所说:“pytest框架使编写小测试变得容易,但它可以扩展到支持应用程序和库的复杂功能测试。”

  测试_*。py test_*和以test_*开头的函数。然后,Pytest将找到整个项目中的所有测试,并在控制台中运行pytest时自动运行它们。Py接受可能在Pytest Runner停止时改变的标志和参数、输出结果的方式、运行的测试以及输出中包含的信息。它还包括一个set_trace()函数,可以输入到测试中。这将暂停测试,并允许您与变量进行交互,否则它将在控制台中“循环”以调试项目。pytest最好的一个方面是它强大的插件生态系统。由于pytest是一个如此受欢迎的测试库,多年来已经创建了许多插件来扩展、定制和增强它的功能。这八个插件是我们的最爱。

  太好了。8

1. 焦糖

  Pytest-sugar更改了pytest-sugar的默认外观,添加了一个进度条,并立即显示失败的测试。它不需要任何配置。只需pip安装pytest-sugar,使用pytest运行测试,然后就可以享受到更漂亮更有用的输出了。

  

2. pytest-cov

  Pytest-cov增加了对Pytest的覆盖支持,以显示哪些代码行已经过测试,哪些没有。它还将包括项目测试覆盖率的百分比。

  

3. pytest-picked

  Pytest-picked根据您已经修改但尚未提交给git的代码运行测试。安装库并使用pytest-picked运行您的test-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 fixture测试django项目的功能,无需导入unittest和复制/粘贴其他样板测试代码,运行速度比标准的Django测试套件更快。

  

8. django-test-plus

  Django-test-plus并不特定于pytest,但是现在它支持pytest。它包括您自己的TestCase类,您的测试可以继承该类,并使您能够以较少的击键次数输入频繁的测试用例,例如检查特定的HTTP错误代码。

  上面提到的库绝不是扩展pytest用途的唯一选择。有用的pytest插件前景光明。查看Pytest插件兼容性页面,亲自探索一下。你最喜欢哪个?

  出发地:https://opensource.com/article/18/6/pytest-plugins

  Pytest插件

pytest 插件开发,pytest框架实战原理