pytest的安装和介绍和 Exit Code 含义
创始人
2024-12-07 21:33:57
0

pytest


准备工作(在cmd里):

1安装

pip install -U pytest 

2验证安装

pytest --version # 会展示当前已安装版本 

3其他的

显示可用的内置函数参数

pytest --fixtures 

通过命令行查看帮助信息及配置文件选项

pytest --help 
一、pytets框架中的约束

所有的单测文件名都需要满足test_.py格式或_ test.py格式。
在单测文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的)
在单测类中,可以包含一个或多个test_开头的函数。
此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。
断言必须使用assert

二、arrtest断言语句
  • pytest中的assert是一种断言语句,用于检查测试结果是否符合预期。它用于在测试代码中判断某个条件是否为真,如果条件为假,则会抛出一个AssertionError异常,并且测试将被标记为失败。
import pytest   def test_a():     print("--tast_a")     assert 1   def test_b():     print("--test_b")     assert 0   def add(a, b):     return a + b   def test_add():     assert add(2, 3) == 5     assert add(0, 0) == 0     assert add(-1, 1) == 0   if __name__ == '__main__':     pytest.main("-s test_abc.py") 
  • 如果其中任何一个assert语句失败,测试将被标记为失败,并且会显示相应的错误消息。

    最后用的是pytest的测试类主函数

    命令行模式(编译器中的终端)

    pytest 文件路径/测试文件名 例如:pytest ./test_abc.py 

    请添加图片描述

三、pytest中测试类主函数

在main()中传参就相当于输出了pytest -*

可以多个传参:

eg:

pytest.main(["-s", "-x"]) 

main() 函数如果不带任何参数,那么执行的效果跟我们在 cmd 直接运行 pytest 命令一样,默认运行的是当前目录及子目录的所有文件夹的测试用例。

-m=xxx: 运行打标签(装饰器:@pytest.mark.xx)的用例

-reruns=xxx:失败重新运行

-q: 安静模式, 不输出环境信息

-v: 丰富信息模式, 输出更详细的用例执行信息

-s: 显示程序中的print/logging输出

-k:可以使用and、not、or等逻辑运算符,区分:匹配范围(文件名、类名、函数名)

-x: 出现一条测试用例失败就退出测试。调试阶段非常有用

–resultlog=./log.txt 生成log

–junitxml=./log.xml 生成xml报告

1、 -s的作用
  • 显示测试函数的打印和输出,默认情况下pytest会隐藏来保持测试报告的整洁性。但是,有时候我们需要查看测试函数中的打印输出,以便进行调试或查找问题。-s就是让他们显示在控制台上。

  • 上面的代码测试结果中显示test_a、b的输出

请添加图片描述

0、 Pytest Exit Code 含义清单

测试结束后最后一行会出现with exit code *,其中含义:

  • Exit code 0 所有用例执行完毕,全部通过
  • Exit code 1 所有用例执行完毕,存在Failed的测试用例
  • Exit code 2 用户中断了测试的执行
  • Exit code 3 测试执行过程发生了内部错误
  • Exit code 4 pytest 命令行使用错误
  • Exit code 5 未采集到可用测试用例文件
2、-m的作用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、-q的作用

只显示测试结果的总结,不输出环境信息

试了一下没看出区别下次学习的时候研究一下

4、-v的作用
5、-–resultlog=./log.txt的作用
6、-reruns的作用
7、–junitxml=./log.xml的作用
8、-k
9、-x

相关内容

热门资讯

3分钟普及!科乐麻将怎么打容易... 3分钟普及!科乐麻将怎么打容易赢,老友广东麻将果然有挂,解密教程(有挂透明);1、用户打开应用后不用...
玩家必备科技!!微信白金岛辅助... 玩家必备科技!!微信白金岛辅助工具(透视辅助)外挂透视辅助app(2021已更新)(哔哩哔哩)1、操...
玩家交流!网易茶馆有辅助(透明... 玩家交流!网易茶馆有辅助(透明挂)本来是真的有挂(2026已更新)(哔哩哔哩)1、金币登录送、破产送...
5分钟方法!微信小程序三打哈辅... 5分钟方法!微信小程序三打哈辅助器,边锋干瞪眼辅助有用吗(竟然是有挂)在进入微信小程序三打哈辅助器辅...
6分钟了解!琼崖手机麻将助赢神... 6分钟了解!琼崖手机麻将助赢神器,贵州微乐麻将其实是有挂,2025教程(有挂方法);1、琼崖手机麻将...
每日必看教程!顺欣茶楼有辅助吗... 每日必看教程!顺欣茶楼有辅助吗(透视辅助)透视脚本辅助工具(2024已更新)(哔哩哔哩)1)顺欣茶楼...
重磅来袭!广客麻将软挂神器(透... 重磅来袭!广客麻将软挂神器(透明挂)竟然是真的有挂(2025已更新)(哔哩哔哩)1、玩家可以在广客麻...
4分钟介绍!一起宁德麻将钓蟹,... 4分钟介绍!一起宁德麻将钓蟹,新科乐棋牌外 挂(竟然真的是有挂);1、许多玩家不知道一起宁德麻将钓蟹...
大家学习交流!微乐家乡麻将挂(... 大家学习交流!微乐家乡麻将挂(辅助挂)外挂透视辅助挂(2020已更新)(哔哩哔哩)1、微乐家乡麻将挂...
二分钟普及!云南天天麻将有挂吗... 二分钟普及!云南天天麻将有挂吗,多乐跑得快私人场其实真的有挂,教你攻略(有挂插件)该软件可以轻松地帮...