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.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更容易编写,更易于配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容