Pytest运行方式及参数使用示例详解
作者:小曾同学.com
一、前言
Pytest 共有三种运行方式分别是
- 主函数运行方式
- 命令行运行方式
- 通过读取pytest.ini 配置文件运行
二、运行方式
# test_case01.py class TestDemo1: def test_01_demo(self): print("test_01") def test_02_demo(self): print("test_02")
#模块2:test_case02.py class TestDemo2: def test_01_demo(self): print("test_02")
2.1 主函数运行
1.运行所有测试模块
新建一个py文件用于运行主函数,右击选择文件即可运行,如下案例所示
# 运行文件:all.py import pytest if __name__ == '__main__': pytest.main(['-vs'])
2.运行单个测试模块
以上案例是运行所有测试模块,如果想运行单个测试模块,写法如下
import pytest if __name__ == '__main__': pytest.main(['-vs','test_case01.py'])
3.运行指定测试用例
运行test_case01.py测试模块中test_02_demo()测试用例,这种运行方式采用 nodeid 指定测试用例运行(nodeid由模块名、分隔符、类名、方法名、函数名组成)。
import pytest if __name__ == '__main__': pytest.main(['-vs','test_case01.py::TestDemo1::test_02_demo'])
2.2 命令行运行
1.运行所有测试模块
# 在对应目录下,输入`pytest -vs` 命令即可运行 pytest -vs
2.运行指定测试模块
pytest -vs test_case01.py
3.运行指定测试用例
pytest -vs test_case01.py::TestDemo1::test_02_demo
2.3 通过读取pytest.ini 配置文件运行
pytest.ini 文件介绍
pytest.ini 文件是 pytest 单元测试框架的核心配置文件。
位置:一般放在项目的根目录下
编码:必须是ANSI,可以使用noepad++修改编码
作用:改变 pytest 默认的行为(可以更改模块名以test等等规定)
运行的规则:不管是主函数的模式运行,还是命令行模式运行,都会去读取这个配置文件。
在根目录下创建 pytest.ini 文件,内容如下所示
[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
开头的测试用例。
[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 | 分组执行 |
到此这篇关于Pytest运行方式及参数使用详细教程的文章就介绍到这了,更多相关Pytest运行方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!