Pytest运行方式及参数使用

一、前言

Pytest 共有三种运行方式分别是

  • 主函数运行方式
  • 命令行运行方式
  • 通过读取pytest.ini 配置文件运行

二、运行方式

1

2

3

4

5

6

# test_case01.py

class TestDemo1:

    def test_01_demo(self):

        print("test_01")

    def test_02_demo(self):

        print("test_02")

1

2

3

4

#模块2:test_case02.py

class TestDemo2:

    def test_01_demo(self):

        print("test_02")

2.1 主函数运行

1.运行所有测试模块
新建一个py文件用于运行主函数,右击选择文件即可运行,如下案例所示

1

2

3

4

# 运行文件:all.py

import pytest

if __name__ == '__main__':

    pytest.main(['-vs'])

2.运行单个测试模块
以上案例是运行所有测试模块,如果想运行单个测试模块,写法如下

1

2

3

import pytest

if __name__ == '__main__':

    pytest.main(['-vs','test_case01.py'])

3.运行指定测试用例
运行test_case01.py测试模块中test_02_demo()测试用例,这种运行方式采用 nodeid 指定测试用例运行(nodeid由模块名、分隔符、类名、方法名、函数名组成)。

1

2

3

import pytest

if __name__ == '__main__':

    pytest.main(['-vs','test_case01.py::TestDemo1::test_02_demo'])

2.2 命令行运行

1.运行所有测试模块

1

2

# 在对应目录下,输入`pytest -vs` 命令即可运行

    pytest -vs

2.运行指定测试模块

1

pytest -vs test_case01.py

3.运行指定测试用例

1

pytest -vs test_case01.py::TestDemo1::test_02_demo

2.3 通过读取pytest.ini 配置文件运行

pytest.ini 文件介绍

pytest.ini 文件是 pytest 单元测试框架的核心配置文件。

位置:一般放在项目的根目录下
编码:必须是ANSI,可以使用noepad++修改编码
作用:改变 pytest 默认的行为(可以更改模块名以test等等规定)
运行的规则:不管是主函数的模式运行,还是命令行模式运行,都会去读取这个配置文件。

在根目录下创建 pytest.ini 文件,内容如下所示

1

2

3

4

5

6

[pytest]

addopts = -p no:warnings -vs

testpaths = ./testcase

python_files = test_*.py

python_classes = Test*

python_functions = test*

如果在命令行输入 Pytest,则会运行 ./testcase 目录下,以 test_*.py文件开头,类名以 Test*开头、函数以 test*开头的文件。

三、修改Pytest默认规则

在【Pytest实战】pytest 基本概念及使用大全文章中,给大家初步介绍了Pytest的默认规则,然后通过 pytest.ini配置文件可以改变Pytest默认规则。
假如运行以aaa开头的测试文件,以AAA开头的类,以aatest开头的测试用例。

1

2

3

4

5

6

[pytest]

addopts = -p no:warnings -vs

testpaths = ./testcase

python_files = aaa_*.py

python_classes = AAA*

python_functions = aatest*

  • addopts    表示命令行参数,当多个参数时,用空格分隔
  • testpaths    表示测试用例文件夹,切记,一点要写成testpaths,不要忘记s。
  • python_files    表示要执行的测试模块规则,默认是以test开头,可以在此处自定义模块名
  • python_classes    表示配置测试搜索的测试类名
  • python_functions    配置测试搜索的测试函数名

四、Pytest 参数使用

在上述案例中简单用到了Pytest参数的使用,后续文章还会详细讲解,先熟悉下吧。

参数说明及使用
-s表示输出调试信息,包括print打印信息
-v表示更详细的信息,通常-vs一起使用
-n支持多线程或者分布式运行测试用例 pytest -vs ./testcase01 -n 2
-m分组执行
​现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:485187702【暗号:csdn11】

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值