1.简介
pytest:基于unittest之上的单元测试框架
- 自动发现测试模块和测试方法
- 断言使用assert + 表达式
- 可以设置会话级别、模块级别、类级、函数级的fixtures
- 有丰富的插件库
2.pytest收集测试用例的规则
1.默认从当前目录中搜集测试用例,即在那个目录下运行pytest命令,则从那个目录当中搜素;
2.搜索规则:
- 1).符合命名规则test_*.py或者 *_test.py文件
- 2).以test_开头的函数名
- 3).以Test开头的测试类(没有__init__函数)当中,以test_开头的函数
examle:
3.通过pytest编写一个简单的测试用例,创建test_sample.py文件
import pytest
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 4
结果;
4.可以通过main()方法执行测试用例:
import pytest
def inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
if __name__ == '__main__':
pytest.main()
5.断言assert
创建test_assert.py文件
import pytest
#功能:用于计算a与b相加的和
def add(a,b):
return a + b
#功能:用于判断素数
def is_prime(n):
if n <= 1:
return False
for i in range(2,n):
if n % i == 0:
return False
return True
# 测试相等
def test_add_1():
assert add(3,4) == 7
#测试不相等
def test_add_2():
assert add(3,4) != 8
#测试大于或等于
def test_add_3():
assert add(17,22) <= 50
#测试小于或等于
def test_add_4