首页 > 其他分享 >pytest命令行选项

pytest命令行选项

时间:2023-04-30 22:14:13浏览次数:38  
标签:选项 lf -- pytest 命令行 test 执行 运行

一、pytest有很多命令行选项如
-v 输出详细信息
-q 简要输出
-s 打印输出
-k "xxx" 在file name、class name、function name来匹配xxx规则,pytest只运行符合匹配结果的部分
-m xx 寻找具有xx mark的test来运行或不运行
-x 遇到失败即停止
-n num 使用数量为nun的进程并行运行测试
--lf 只是运行上次失败的的部分
--ff 只是运行上次失败的部分并且忽略成功的部分
--junitxml=path 创建junit XML格式的测试报告
--html=path 创建HTML格式的测试报告

1 -k的使用
我的目录及文件如下:
image
执行pytest -k "eg1 and not eg2"
注意内容一定要放在引号里面
image

image
可以看到只是执行test_eg1.py, test_eg2.py没有执行.内容匹配也是模糊匹配,pytest会把你给定的字符信息和file name、class name、function name等作比较

执行pytest -k "estClass and not two" -v
为了看详细执行了哪些 我加了-v
image

image

可以看到只是执行了class里面的第一个方法

现在想要执行test_eg2.py全部test 和test_demo.py中的包含mutl关键字的test
image
如上图,and没有效果

image
换成or 就匹配到测试数据了

2 pytest -m
image

image
如上 被@test.mark.userfixture装饰的test被执行了

也可以反向选定 具有特定mark的test不被执行如
image
pytest -m "not usefixtures" -v test_eg2.py
注意:not xxx 要加引号 如果没有not不需要加引号
image
可以看到test_eg2.py里被装饰的test未执行,没有被装饰的test执行了
这里的mark可以用pytest自带的也可以用自定义的mark

3 --lf 只运行上次失败的test
image
如上:第一次运行有3个fail 1个pass

执行 pytest --lf
image
注意看pytest给出的提示,它会寻找最近一次失败的运行记录,把失败的test拿出来运行,通过的就忽略了没有被运行

如果未执行 pytest --lf 执行的是pytest --ff
image

image

如上:它和--lf的区别是
1)--lf只选定且运行了了之前的失败的test.--ff选择了之前所有的test,但--ff并没有运行所有的test,只运行了其中失败的test
2)最后统计的时候 --lf只是统计了本次运行的,也就是之前失败的test,但--ff统计了之前所有的test

4 -n 利用硬件配置上的多cpu生成多个进程,利用多进程来运行test,提高运行速度
要装一个插件,否则pytest无法识别-n参数
pip install pytest-xdist

首先不加-n直接执行
image

image
总共执行了3.62s

执行pytest -s -v -n 4
这里加-s是为了统计出时间
image
加了-n以后5.7s 还变慢了 哈哈
这里,我暂时没有深究,我大约记得多进程间的切换本来就消耗资源,还有我这里是win系统,win对生成多进程好像有个什么限制,后面再详细看下
4 pytest配置文件
pytest配置文件有很多 常用的就是pytest.ini。pytest会自动读取配置文件的数据
我们可以将执行pytest时后面的一些选项 如-s 写在配置文件里面,这样执行pytest时,-s就会被默认带上
注意,在pytest.ini,pytest自带的选项有很多,把-s -v写在哪一个选项后面是有讲究的的,具体可看官网文档https://docs.pytest.org/en/7.3.x/reference/reference.html#ini-options-ref
把-s -v 写到pytest.ini
image
image
如上,直接执行pytest 效果就和之前执行pytest -s -v一样一样的,自动输入更详细的执行信息

上面我配置文件多了 env custom_variable 两个选项,这个与-s -v无关,是我自定义的两个选项,在配置文件自定义选项用起来要麻烦点,后面再说

标签:选项,lf,--,pytest,命令行,test,执行,运行
From: https://www.cnblogs.com/MyRecords/p/17365453.html

相关文章

  • Win10系统命令行以管理员身份运行的几种方式
    在win10系统中运行许多命令需要使用管理员身份运行,如果直接按下win+R组合键呼出运行,键入cmd打开命令提示符输入命令执行的话会出现无法执行的现象。给大家分享下win10系统中几个以管理员身份运行的方法。方法一:1、在开始菜单上单击鼠标右键,在弹出的菜单中点击【命令提示符(......
  • Windows cmd命令行
    查看当前目录:echo%cd%列出当前目录的所有文件dir跳转到Desktop文件夹:chdirDesktop跳转到当前目录的上一级文件夹chdir..返回home目录chdir%HOMEPATH%创建一个可用于修改的新文件:echo"myawesomefile">my_new_file.txt复制到一个新文件夹copymy_new_file......
  • sys.argv命令行参数使用
    用户命令行配置参数:代码如下:importsysiflen(sys.argv)<2:print('tip:')print('1.select')print('2.select')print('3.select')else:foriinsys.argv[1:]:print(i)......
  • Django学习笔记--命令行启动与pycharm启动
    命令行模式创建Django项目django-adminstartproject项目名启动django项目cd项目名pythonmanage.pyrunserver#可以配置ip和端口pythonmanage.pyrunserver0.0.0.0:8000#如果遇到报错,是解释器和版本不一致导致。找到python38\lib\site-packages\django\con......
  • Problem C: 命令行选项
    ProblemDescription请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后......
  • Pytest自动化测试框架常用参数
    一、常用参数1.指定执行文件/用例不带参数,仅带文件名/文件相对路径/文件绝对路径测试文件::测试类:执行指定类测试文件::测试类::用例:执行指定用例2.短命令选项-v:输出详细信息-q:简化输出信息-k:根据关键字表达式执行-x:失败则退出执行-m别名:只执行被标记的用例、-s:输出......
  • pytest---增加log日志(pytest.ini)
    前言在自动化操作过程中,我们可以通过增加log日志的情况进行更加直观的了解我们测试用例的执行情况,包括执行状态,方便排查问题和分析问题,前面有简单介绍pytest.ini这个文件,他可以帮助我们更加方便的执行测试用例,pytest.ini中有单独为log日志增加的一些信息log_clilog_cli:表示在执......
  • Kubernetes 设置命令行的命名空间
    在较新版本的Kubernetes中,kubectl的默认命名空间已经不再是default,而是用户的当前命名空间。这是因为Kubernetes强烈建议您在不同的命名空间中隔离应用程序和资源,因此kubectl默认使用用户当前的命名空间来提高生产力。您可以使用以下命令来查看当前所在的命名空间:arduin......
  • jar包启动基础命令 java -jar common.jar cmd 命令行执行jar包
    jar包启动基础命令命令行执行jar包java-jarcommon.jar原文链接:https://blog.csdn.net/weixin_40483369/article/details/124392170一般情况下运行jar包,当前是可运行的jar包,直接命令java-jarcommon.jar1按下ctrl+C,关闭当前ssh或者直接关闭窗口,当前程序都会退出。......
  • Kafka命令行常用命令说明(一)
    基于0.8.0版本。 ##查看topic分布情况kafka-list-topic.shbin/kafka-list-topic.sh--zookeeper192.168.197.170:2181,192.168.197.171:2181(列出所有topic的分区情况)bin/kafka-list-topic.sh--zookeeper192.168.197.170:2181,192.168.197.171:2181--topictest(查......