pytest基础操作01
2021-12-03 本文已影响0人
软件开发技术修炼
安装pytest
pip install -U pytest
用例设计原则:
以test_ 开头的函数
以test 开头的类,不能包含 init方法
以test_ 开头的类里面的方法
所有的包package必须有 init.py 文件
创建第一个简单的测试函数
import pytest
#定义add函数
def add(a,b):
return a+b
class TestAdd(object):
def test_add_int(self):
assert add(2,3) == 5
def test_add_str(self):
assert add('hi','Tily') =='hiTily'
def test_add_float(self):
assert add(1.0,2.0)==3.0
if __name__ == '__main__':
pytest.main('-q test_fixture.py')
关于test命名的一些规范及特殊使用
#将一个类中的多个测试分组,确保类前加上Test,否则跳过类
class TestClass:
def test_one(self):
x = "this"
assert "h" in x
def test_two(self):
x = "hello"
assert hasattr(x,"check")
#测试分组时,每个测试都有一个唯一的类实例,相同会报错
class TestClassDemoInstance:
def test_one(self):
assert 0
def test_two(self):
assert 0
结果:2 failed
#请求功能测试的唯一临时目录
def test_needsfile(tmpdir):
print(tmpdir)
assert 0
列出名字 tmpdir 在测试函数签名和 pytest 将在执行测试函数调用之前,查找并调用fixture工厂以创建资源。
在测试运行之前, pytest 创建唯一的每个测试调用临时目录
#断言——使用raises助手来断言某些代码引发异常
import pytest
def f():
raise SystemExit(1)
def test_mytest():
with pytest.raises(SystemExit):
f()