pytest 知识点学习

1、pytest安装

pip install -U pytest

2、查看安装版本

pip show pytest

3、运行用例

pytest运行规则:查找当前目录及其子目录下以test_*.py或*_test.py文件,找到文件后,在文件中找到以test开头函数并执行。

例子:

 运行步骤:

(1)打开cmd窗口

(2)进入到项目文件夹

(3)输入运行命令

pytest 文件名

 成功显示 “.”, 失败显示 “F”

 使用-v ,显示测试的详细信息

 

 <1> 运行指定函数名,通过::标记

 

 <2> 使用模糊匹配运行某个用例,使用-k 选项标识

 <3> 标记函数后,指定函数运行

4、pytest 用例规则

(1)测试文件以test_开头(以_test结尾也可以)

(2)测试类以Test开头,并且不能带有 __init__ 方法

(3)测试函数以test_开头

(4)断言使用assert

5、跳过测试

希望运行时跳过某用例,需要在该用例上标记为skip

 

可以看出test_func2在执行时被跳过,用s标识

 

 

 6、预知错误

事先知道测试的函数会执行失败,但是又不想直接跳过,而是希望显示提示。

 使用x标识预知的失败

7、参数化

 可以看出执行了三次

 8、预处理和后处理

 使用 -s 表示阻止信息被吞噬

未使用-s :

运行时添加了-s,可以看到测试成功的 . 标识前后有数据库的连接和关闭操作。

 9、fixture 的作用域 (默认作用域为function)

Fixture 的作用是为了抽离重复的工作和方便复用,为了更精细化控制fixture,pytest 使用作用域来指定fixture的使用范围。

在定义fixture 时,使用scope参数声明作用域,可选项有:

(1)function :函数级,每个测试函数都会执行一次;

(2)class:类级别,每个测试类执行一次,所以方法都可以使用;

(3)module:模块级,每个模块执行一次,模块内函数和方法都可以使用;

(4)session:会话级,一次测试只执行一次,所有被找到的函数和方法都可用。

 

 class 的使用

 pytest.mark.usefixtures 对函数和方法也适用

10、fixture 重命名

Fixture 的名称默认为定义时的函数名,如果不想使用默认,可以通过name选项指定名称:

 11、fixture 参数化

适用场景:一批API 需要测试不同数据库的支持情况(对所有数据库进行相同的操作)

 

附:Pytest 使用手册 — learning-pytest 1.0 文档

猜你喜欢

转载自www.cnblogs.com/yudx/p/12131895.html
今日推荐