pytest运行规则

一、 pytest介绍

pytest是python第三方库,unnittest是标准库,pytest兼容unnittest

二、 pytest安装

安装命令:pip3 install pytest(可以使用国内镜像源)

查看pytest是否安装成功:pip3 show pytest

三、 硬性规则

1、 py文件必须以test_开头或_test结尾

2、 测试类必须以Test开头,并且不能有__init__方法

3、 测试方法必须以test_开头

4、 断言必须使用assert,assert一般结合pytest用,不单独用

pytest可以自动运行所有文件所有用例,前提是满足上述规则,不满足的不会运行,忽视

四、 runner

1、有两种运行方式,unittest和pytest,两者都可以运行,默认是unnittest,在下图pycharm所示位置可以选择

2、如果需要通过main下面pytest.main(['test_xxx.py','-s'])运行,那么pycharm要选择unittest,右键运行是以python方式运行.py文件,且左侧没有绿色的小运行按钮

3、如果选择pytest,右键是以pytest运行,两种运行方式运行出来结果一样,只是展示的效果不一样,如果是unittest运行,成功的用例后面是个点,左侧有绿色的运行小按钮,点击可以执行特定用例

5、 通过右键的pytest方式运行需要注意鼠标的位置,如果是在某个函数后面运行则执行这个函数,如果在类后面运行,则执行类里的所有测试方法,点左侧小绿运行按钮也是同样的效果,最保险的运行方式是点左侧小绿运行按钮,如果右键运行,和位置有关系,可能会漏掉

6、 -s参数:允许展示打印信息(unittest模式下需要,pytest模式不需要,有没有这个参数都会打印)

7、 -v参数:强化显示,显示更加详细的日志信息,会显示是什么操作系统等

8、 pytest.main()如果运行当前目录下所有文件,用./,也可以指定文件名运行

9、 执行目录里的多个文件:新建一个文件test_xxx.py,import pytest,main主函数,pytest.main(),换unittest运行

五、定制化执行

1、 pytest.mark.标签,比如pytest.mark.login,执行时加上-m login参数,指定执行的模块、类、接口。一个标签:'-m','login1';多个标签:'-m','login1 or login2';不执行某个用例:'-m','not login';排除多个:'-m','not login1 or login2'

用例通过了,但是有警告,是因为标签没有注册,不能被pytest识别,可以忽略,也可以处理一下,处理方法是去注册一下:在项目根目录下新建一个pytest.ini文件,里面按照固定格式以键值对形式写上标签:描述,再次执行不会出现警告

2、 -k匹配用例名称,可以全名匹配,也可以模糊匹配,比如:pytest -k login

3、 -v:节点多层化,比如pytest - v 模块名::类名::方法名

4、 -s/-q:-s是输出打印信息,-q是简化打印信息

5、 跳过/条件跳过

场景:有时候代码已经编写完成,但是由于环境问题或接口实现有误还不能执行,这时可以跳过

跳过:@pytest.mark.skip(reason='xxx'),有原因的跳过

条件跳过:@pytest.mark.skipif(condition,reason='xxx'),condition写布尔表达式,为true跳过。比如可以判断登录失败时跳过。

当在执行时加'-rs'参数,才会显示跳过原因

6、不执行某个文件:--ignore=test_xxx.py

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值