pytest运行_python缓存机制

pytest运行_python缓存机制前言pytest运行完用例之后会生成一个.pytest_cache的缓存文件夹,用于记录用例的ids和上一次失败的用例。方便我们在运行用例的时候加上–lf和–ff参数,快速运行上一

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例。
方便我们在运行用例的时候加上–lf 和 –ff 参数,快速运行上一次失败的用例。
–lf, –last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)
–ff, –failed-first 运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的fixture setup/teardown)
 

cache

pytest -h 查看命令行参数,关于 cache 参数的使用方式

> pytest -h

--lf, --last-failed   rerun only the tests that failed at the last 
                      run (or all if none failed)
--ff, --failed-first  run all tests, but run the last failures first.
                      This may re-order tests and thus lead to repeated fixture                                   											setup/teardown.
--nf, --new-first     run tests from new files first, then the rest of the tests sorted by 												file mtime
--cache-show=[CACHESHOW]
                      show cache contents, don't perform collection or tests. Optional      											argument: glob(default: '*').
--cache-clear         remove all cache contents at start of test run.

参数说明:

  • –lf 也可以使用 --last-failed 仅运行上一次失败的用例
  • –ff 也可以使用 --failed-first 运行全部的用例,但是上一次失败的用例先运行
  • –nf 也可以使用 --new-first 根据文件插件的时间,新的测试用例会先运行
  • –cache-show=[CACHESHOW] 显示.pytest_cache文件内容,不会收集用例也不会测试用例,选项参数: glob (默认: ‘*’)
  • –cache-clear 测试之前先清空.pytest_cache文件
     

–cache-show

案例

def test_01():
    a = "hello"
    b = "hello"
    assert a == b


def test_02():
    a = "hello"
    b = "hello world"
    assert a == b


def test_03():
    a = "hello"
    b = "hello world"
    assert a in b


def test_04():
    a = "hello"
    b = "hello world"
    assert a not in b

命令行输入 运行完成后,会有2个用例失败,2个用例成功

collecting ... 
 case/test_1.py ✓                                                                                                                                                                                         25% ██▌       

 case/test_1.py ⨯✓                                                                                                                                                                                        75% ███████▌  

 case/test_1.py ⨯                                                                                                                                                                                        100% ██████████

运行完成后,会在当前的目录生成一个 .pytest_cache 的缓存文件夹,层级结构如下

pytest运行_python缓存机制

lastfailed 文件记录上一次运行失败的用例

{
  "test_x.py::test_02": true,
  "test_x.py::test_04": true
}

nodeids 文件记录所有用例的节点

[
  "test_x.py::test_01",
  "test_x.py::test_02",
  "test_x.py::test_03",
  "test_x.py::test_04"
]

于是可以通过 pytest –cache-show 命令查看cache目录

(pytest_env) ➜  apiAutomatic pytest --cache-show
Test session starts (platform: darwin, Python 3.7.6, pytest 6.2.1, pytest-sugar 0.9.4)
rootdir: /Users/jkc/PycharmProjects/apiAutomatic, configfile: pytest.ini
plugins: assume-2.4.2, sugar-0.9.4, rerunfailures-9.1.1, base-url-1.4.2, html-3.1.1, metadata-1.11.0, ordering-0.6, cov-2.10.1, repeat-0.9.1, xdist-2.2.0, forked-1.3.0, allure-pytest-2.8.29
cachedir: /Users/jkc/PycharmProjects/apiAutomatic/.pytest_cache
------------------------------------------------------------------------------------------------- cache values for '*' -------------------------------------------------------------------------------------------------
cache/lastfailed contains:
  {'case/test_1.py::test_02': True, 'case/test_1.py::test_04': True}
cache/nodeids contains:
  ['case/test_1.py::test_01',
   'case/test_1.py::test_02',
   'case/test_1.py::test_03',
   'case/test_1.py::test_04']
cache/stepwise contains:
  []
Results (0.02s):

 

–cache-clear

–cache-clear 用于在测试用例开始之前清空cache的内容

查看pytest关于cache的更多文档https://docs.pytest.org/en/latest/cache.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165657.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月30日 上午6:46
下一篇 2022年7月30日 上午6:46


相关推荐

  • JAVA程序员简历模板_Java工程师简历模板

    JAVA程序员简历模板_Java工程师简历模板Java程序员简历模板本简历模板由国内首家互联网人才拍卖网站「 JobDeer.com 」提供。(括号里的是我们的顾问编写的说明,建议在简历书写完成后统一删除)先讲讲怎样才是一份好的技术简历首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力。Feature:是什么Advantage:比别人好在哪些地方Benefit:如果雇佣你,招聘方会得到什么好

    2025年6月25日
    14
  • PyCharm添加背景图片

    PyCharm添加背景图片用 PyCharm 写 python 程序真的是一件超幸福的事情 但是背景稍稍有点单调 是否可以把背景设置成自己喜欢的图片呢 当然可以啦 本文介绍了一下背景图片的设置方式 希望能帮助到大家

    2026年3月17日
    2
  • SPSS方差分析应该如何进行

    SPSS方差分析应该如何进行以前 我们在学统计学的时候 做方差分析的话 常常会用到 spss 这款软件 后来 在工作上 很多实验数据的分析 也还是会用到 spss 用它来分析比较实验数据之间有无显著差异 对此 很多刚接触该软件的用户就问到如何用 spss 做方差分析 所以 本文来讲解用 spss 做方差分析的方法步骤 帮助大家分析结果的数据差异 从而提高实验的有效性 用 spss 做方差分析教程 1 首先 我们打开 spss 软件 在软件的左下方点击切换到 变量视图 的操作界面 2 因为要用 spss 做方差分析 故此

    2026年3月26日
    2
  • pycharm单步调试快捷键_pycharm运行代码快捷键

    pycharm单步调试快捷键_pycharm运行代码快捷键1.PyCharm常用快捷键Ctrl+/#注释Ctrl+A#全选Ctrl+C#不需要选中一行,直接复制整行内容Ctrl+X#不需要选中一行,直接剪切整行内容Ctrl+V#粘贴Ctrl+D#复制并粘贴,直接在下一行粘贴该行整行(或选中)的内容Ctrl+Z#回退到上一步操作Ctrl+Shift+N#

    2022年8月28日
    5
  • Windows 查看端口是否已打开(转)

    Windows 查看端口是否已打开(转)Windows 查看端口是否已打开 转 转载 https www cnblogs com zhengxu articles 9167169 html 这篇很有效 从服务器上查看 和从客户端上查看端口是否开放 最后检查服务器上安全狗是否打开端口 windows 是否开放端口 云服务器商 三五互联 阿里云 是否开放端口 他们有硬件防火墙 在默认状态下 Windows 会打开很多 服

    2026年3月17日
    2
  • 国内免费域名注册_域名解析服务器是什么

    国内免费域名注册_域名解析服务器是什么ZeroNet最大的特点就是去中心化,无需服务器,由匈牙利开发者使用python开发,支持多个平台。建立好网站内容并同步到网络节点,有用户访问网站则自动存储上传,访问地址统一为127.0.0.1,不怕被墙或者拦截,采用Bitcoin加密技术传输内容保证数据安全。目前ZeroNet上已有相当健全的论坛和博客,安装客户端(你也可以简单的理解为浏览器)输入地址即可访问。想要建立的自己的网站也很…

    2022年10月5日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号