首页 > 技术文章 > Pytest测试框架(一)

caoxiaowei 2020-05-27 14:34 原文

安装

pip install -U pytest

用下面的命令去检查一下pytest是否成功安装
$ pytest --version
This is pytest version 5.4.1

快速开始

创建名为test_001.py的文件,敲如下内容

def reverse(string):
return string[::-1]
def test_reverse():
string = "123"
assert reverse(string) == "321"
another_string = "123"
assert reverse(another_string) == "321"

上面的代码做了2件事情
定义了名为reverse(string)的全局函数,作用是把string反转并返回。比如输入"abc"会反转成"cba"
定义了名为test_reverse()的函数,包含了2个断言,用来测试reverse()方法的正确性

运行多个文件

在现实的测试活动中,我们经常会定义多个用例文件,用来实现业务逻辑或其他逻辑上用例的物理分隔,比如
login_test001.py
login_test002.py
login_test003.py
login_test004.py
使用pytest可以很方便的执行批量执行一组文件中定义的用例。
在批量执行用例之前,我们需要了解一下pytest的潜规则,注意,由于pytest可以支持丰富的定制选项,下面的潜规则是在没有定制的默认情况下的缺省规则
pytest会找当前以及递查找子文件夹下面所有的test_.py或_test.py的文件,把其当作测试文件
在这些文件里,pytest会收集下面的一些函数或方法,当作测试用例
不在类定义中的以test_开头的函数或方法
在以Test开头的类中(不能包含__init__方法),以test_开头的方法
pytest也支持unittest模式的用例定义
实例
新建test_002.py文件,与上的test_001.py放在同一文件夹下,敲入下面的内容
def add(x, y):
return x + y

def test_add():
assert add(1, 0) == 1
assert add(1, 1) == 2
assert add(1, 99) == 100
现在当前文件夹下应该有2个文件

test_001.py
test_002.py
运行
在当前文件夹敲下面的命令

pytest

推荐阅读