pytest插件

pytest插件汇总站点:http://plugincompat.herokuapp.com/

  • pytest-xdist 多CPU执行
pytest -n 4
pytest -n auto
  • pytest-cov 覆盖率
pytest --cov=src
...
----------- coverage: platform win32, python 3.6.3-final-0 -----------
Name Stmts Miss Cover
----------------------------------------
src/series.py 108 5 96%
src/tests/test_series 22 0 100%
----------------------------------------
TOTAL 130 5 97%

还可以使用--cov-report选项生成各种格式的报告:XML,注释和HTML。

  • pytest-faulthandler 自动启用内置错误处理程序

经常使用用C / C ++编写的扩展模块,强烈建议使用此插件,因为它们更容易崩溃。

  • pytest-mock pytest和标准库的unittest.mock集成

  • pytest-django

非常好的快速入门教程
命令行和pytest.ini选项,用于配置Django
与pytest-xdist的兼容
使用django_db mark,访问数据库,在测试之间使用自动事务回滚,以及一组可以控制数据库的管理Fixtures向您的应用程序发出请求:client,admin_client和admin_user
在后台线程中运行Django服务器的live_server fixture

总而言之,这是生态系统中最完整的插件之一,是Django应用程序的必备软件。

  • pytest-flakes
    使用pyflakes(https://pypi.org/project/pyflakes/)检查你的代码,这是一个常见错误的源文件的静态检查器,例如缺少导入和未知变量。
    安装后,使用--flakes选项激活它:
  • pytest-ASYNCIO
    asyncio(https://docs.python.org/3/library/asyncio.html)模块是Python 3的异步框架。 pytest-asyncio插件允许您编写异步测试函数,使您可以轻松测试异步代码。
@pytest.mark.asyncio
async def test_fetch_requests():
    requests = await fetch_requests("example.com/api")
    assert len(requests) == 2
  • pytest-trio

类似asyncio标准模块,更简单,更友好,包含一些关于如何处理超时和并行任务组的新想法,以避免并行的常见错误。它还提供其他功能,使测试更容易和更可靠,例如用于测试超时的可控时钟,处理任务的特殊功能,模拟网络套接字和流等等。

  • pytest-postgresql
def test_fetch_series(postgresql):
cur = postgresql.cursor()
cur.execute('SELECT * FROM comedy_series;')
assert len(cur.fetchall()) == 5
cur.close()

允许您测试需要运行PostgreSQL数据库的代码。包含客户端fixture,用于启动和关闭与正在运行的测试数据库的连接。在测试结束时,它会丢弃测试数据库以确保测试不会相互干扰。;postgresql_proc:一个会话范围的fixture,每个会话启动一次PostgreSQL进程,并确保它在结束时停止。postgresql它还提供了有关如何连接和配置测试数据库的几个配置选项。

  • docker-services

启动并管理您需要的Docker服务,以便测试您的代码。这使得运行测试变得简单,因为您不需要自己手动启动服务;根据需要,插件将在测试会话期间启动和停止它们。

  • pytest-selenium
def test_visit_pytest(selenium):
    selenium.get("https://docs.pytest.org/en/latest/")
    assert "helps you write better programs" in selenium.title
    elem = selenium.find_element_by_link_text("Contents")
    elem.click()
    assert "Full pytest documentation" in selenium.title
  • pytest-html

生告可以在Web服务器中提供,以便于查看,而且它们包含很好的功能,例如显示/隐藏不同类型的测试结果的复选框,而其他插件(如pytest-selenium)甚至能够将屏幕截图附加到失败的测试中,如在上一张图片中。

  • pytest-cpp

为了证明pytest的框架非常灵活,pytest-cpp插件允许你运行用Google Test编写的测试(https://github.com/google/googletest)
或者Boost.Test(https://www.boost.org),它是用C++语言编写和运行测试的框架。

  • pytest-timeout

  • pytest-timeout插件在达到某个超时后自动终止测试。

  • pytest-annotate
    观察运行时类型信息的项目,可以使用该信息将类型注释插入到源代码中,而pytest-annotate使得pytest易于使用。
  • pytest-QT

  • pytest-qt插件允许您为Qt框架(https://www.qt.io/)编写的GUI应用程序编写测试,支持更受欢迎的Qt绑定:Pytt4 / PyQt5和PySide / PySide2 。
    它提供了一个qtbot fixture,它具有与GUI应用程序交互的方法,例如单击按钮,在字段中输入文本,等待窗口弹出等等。这是一个快速示例,展示了它的实际应用:

  • pytest-randomly 随机数

  • pytest-bdd:pytest的行为驱动开发

  • pytest-benchmark:基准测试

  • pytest-csv:将测试状态输出为CSV文件

  • pytest-docker-compose:这管理Docker容器,在测试运行期间使用Docker compose

  • pytest-excel:在Excel中输出测试状态报告

  • pytest-git: git

  • pytest-json:将测试状态输出为json文件

  • pytest-leaks:通过反复运行测试来检测内存泄漏

  • pytest-menu:让用户从控制台的菜单中选择要运行的测试

  • pytest-mongo:MongoDB的进程和客户端fixture

  • pytest-mpl:测试Matplotlib输出数据的插件

  • pytest-mysql:MySQL的进程和客户端fixtures

  • pytest-poo:使用“poo poo”表情符号替换失败测试的F字符

  • pytest-rabbitmq:RabbitMQ的进程和客户端装置

  • pytest-redis:Redis的进程和客户端装置

  • pytest-repeat:多次重复所有测试或特定测试以发现间歇性故障

  • pytest-replay:保存测试运行并允许用户稍后执行它们,以便重现崩溃和片状测试

  • pytest-rerunfailures:这标志着可以多次运行以消除片状测试的测试

  • pytest-sugar:通过添加进度条,表情符号,即时失败等来改变pytest控制台的外观和感觉

  • pytest-travis-fold:在Travis CI构建日志中折叠捕获的输出和覆盖率报告

  • pytest-vagrant:vagrant

  • pytest-vcr:使用简单标记自动管理VCR.py磁带(https://vcrpy.readthedocs.io/en/latest/)

  • pytest-virtualenv:这提供了一个管理虚拟的virtualenv工具

  • pytest-tap:这会持续监视源代码的变化并重新运行pytest

  • pytest-xvfb:这为您的UI测试运行Xvfb(虚拟帧缓冲区)

  • tavern:使用基于YAML的语法对API进行动化测试

  • xdoctest:重写内置doctests模块,使doctests更容易编写,更易于配置

你可能感兴趣的:(pytest插件)