首页 > 其他分享 >pytest之.pytest_cache文件夹作用【Pytest中的cache缓存功能】

pytest之.pytest_cache文件夹作用【Pytest中的cache缓存功能】

时间:2023-04-26 15:23:04浏览次数:34  
标签:-- cache pytest 用例 Pytest 失败 测试用例

 

前言
pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例。

1、跑自动化时经常会出现这样一个情况,一轮自动化跑完后零星出现了几个失败测试用例,无法断定失败的原因,所以可能需要重新跑一下失败的测试用例去调试,那我们要做的是就去修改脚本把那几个失败的测试用例筛选出来然后重新跑一遍;

2、但是在pytest测试框架因为有缓存功能,就不需要手动去查找上次失败的测试用例并筛选执行。

3、pytest测试框架中执行完所有的测试用例后会在当前目录下生成 .pytest_cache ,里面就保存了上一次用例执行的信息。

pytest测试框架中跟缓存有关的命令行参数
1、 --last-failed : 如重新运行上次运行结果为失败的测试用例, 如果没有执行失败的用例则执行所有的测试用例。【 --lf 】

场景:因为某次改动导致了多个测试用例失败了,那么我可以先执行一次全量测试找出所有失败的用例,待问题修复后,再次执行时带上这个选项就可以快速的进行验证:只执行失败用例验证失败用例是否已修复。

这个的实现原理是:pytest会在每次执行时将该次执行失败的所有用例存到测试文件同级目录下的名为.pytest_cache/v/cache/lastfailed的隐藏文件里,这样就清楚的标明了上次执行失败的用例。
2、 --failed-first :运行所有测试,但首先运行上次运行失败的测试(这可能会重新测试,从而导致重复的 fixture setup/teardown )【 --ff 】

3、 --new-first :根据文件插件的时间,新的测试用例会先运行。【 --nf 】

3、 --cache-show :显示 .pytest_cache 文件内容,不会收集测试用例也不会执行测试用例

4、 --cache-clear :开始执行测试之前先清空 .pytest_cache 文件

.pytest_cache 文件夹详解


1、 .pytest_cache/v/cache/lastfailed :上一次运行失败的测试用例。

 

2、 .pytest_cache/v/cache/nodeids :上一次运行的所有测试用例(无论测试用例的执行结果通过还是失败)。

 

3、 .pytest_cache/v/cache/stepwise :测试用例的路径。

 

4、 .pytest_cache/v/cache/.gitignore :pytest测试框架 .pytest_cache的自带的 .gitignore 文件。

5、 .pytest_cache/v/cache/CACHEDIR.TAG :pytest创建的缓存目录标签。

 

6、 .pytest_cache/v/cache/README.md : .pytest_cache 文件夹介绍。

 

实例


一共七个测试用例,四个PASSED,三个FAILED

--last-failed


这里只运行了上一次失败的测试用例。

--failed-first


这里首先会执行之前失败的测试用例,然后在运行其他的测试用例。

--cache-show


【注意】

①重复运行同一组测试用例时(测试套不变), .pytest_cache 目录中的文件不变。

 

②上一次运行的一组测试用例,下一次运行另一组测试用例, .pytest_cache 目录中的文件会改变,会加上另一组测试用例的信息。

 

③继②后,此时若想去除 .pytest_cache 目录中文件的内容,重新运行第一组的测试用例,并带上命令行参数 --cache-clear 。

 

去期待陌生,去拥抱惊喜。
————————————————
原文链接:https://blog.csdn.net/HB8888888/article/details/124051263

标签:--,cache,pytest,用例,Pytest,失败,测试用例
From: https://www.cnblogs.com/mashuqi/p/17356197.html

相关文章

  • 浏览器 http 200(from cache) 和 304
    1,Last-Modified设置header("Last-Modified:".gmdate("D,dMYH:i:s",time())."GMT"); Last-Modified虽然使用了缓存,但是每次打开页面依然需要向服务器发起http请求,浏览器根据用户的$_SERVER['HTTP_IF_MODIFIED_SINCE']来判断浏览器的内容是否......
  • pytest
    Pycharm 内装pytest,Terminal内输入pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepytest#原命令pipinstallpytest,因为网速不好此处用清华网址的镜像Pytest文件命名规范.py测试文件必须以test_ 开头(或_test 结尾)测试方法必须以 test_ 开头测试类必......
  • 自动化测试框架pytest教程
    快速入门准备安装推荐安装anaconda,默认带pytest#pip3installpytest...$pytest-h#查看帮助...参考资料:https://pytest.orghttps://pypi.org/project/pytest第一个实例(通过)deftest_passing():assert(1,2,3)==(1,2,3)函数test_passing()......
  • uiautomator2+app ui自动化用例报错截图pytest_runtest_makereport
    pytest提供了pytest_runtest_makereport这个方法,可以捕获用例的执行情况。根据官方提供的示例,在conftest.py文件中添加如下代码就可以捕获每个用例的执行结果。那么pytest_runtest_makereport作用:对于给定的测试用例(item)和调用步骤(call),返回一个测试报告对象(_pytest.runne......
  • Redis、Memcached、Guava、Ehcache中的算法
    1.LRU简单粗暴的Redis今天看 Redis3.0的发行通告里说,LRU算法大幅提升了,就翻开源码来八卦一下,结果哭笑不得,这旧版的"近似LRU"算法,实在太简单,太偷懒,太Redis了。在 Github的Redis项目里搜索lru,找到代码在redis.c的freeMemoryIfNeeded()函数里。先看 2.6版的代码:竟然就是随机找三......
  • 02-pytest运行报错
    #运行时提示:pytest-Windowsfatalexception:code0x8001010d#解决方法:pytest.ini中加上no:faulthandleraddopts=-vs-pno:faulthandler--html../report/re.html#运行时警告:     DeprecationWarning:invalidescapesequence\d#解决方......
  • 【调试】Valgrind内存泄漏内存越界|运行时间|调用|cache命中率|多线程竞态|堆栈分析..
    目录即看即用详细简介Valgrind工具详解安装使用检测内存泄漏其他内存问题memcheck工具的常用选型其他选项附录其他类似工具实例分析:03.使用未初始化的内存04.使用野指针05.动态内存越界访问06.分配空间后没有释放07.不匹配使用delete或者free08.两次......
  • memcached命令行参数说明
    评:1、启动Memcache常用参数-p<num>设置TCP端口号(默认不设置为:11211)-U<num>UDP监听端口(默认:11211,0时关闭)[u][b]-l<ip_addr>绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)[/b][/u]-d以daemon方式运行......
  • python+playwright 学习-49 pytest-xdist 多进程执行用例
    前言在实际工作中项目下的web自动化用例非常多,单进程执行会消耗很长的运行时间,可能运行一次用例得几个小时。为了加快用例的运行速度,可以使用pytest-xdist多进程执行用例。但并不是说你写的用例,直接安装插件就能使用,实际使用的过程中还会遇到很多的问题。pytest-xdist多进程执行......
  • pytest结合allure-pytest插件 生成allure测试报告
     注意:allure-pytest 从1.7之后已弃用,从2.0版本开始迁移至 allure-python 项目(即使用allure2),另外要运行allure命令行也需要Java的支持。1、安装allure-pytestpipinstall-U allure-pytest 这将安装allure-pytest和allure-python-commons程序包,以生成与allure2兼容的报告......