最前提是先需要安装pytest和pytest-html(生成html测试报告)
一、命名规则
Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,
比unittest更加严谨
案例
结果为没有测试用例在执行
运行于测试方法的始末,即:运行一次测试函数会运行一次setup和teardown
运行于测试方法的始末,但是不管有多少测试函数都只执行一次setup_class和 teardown_class
二、Pytest生成自带的html测试报告
前提条件:需要下载pytest-html模块(python自带的生成测试报告模块)
2.1 方式一
格式
代码:
2.2 方式二
格式
运行指定模块指定类指定用例,冒号分割,并生成测试报告
运行指定模块指定类指定用例,冒号分割,并生成测试报告
代码
2.3 方式三(无效)
格式
直接执行pytest.main() 【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】(课堂练习_test)
代码:
2.4 方式四
Pytest调用语句
扩充:跳过
使用@pytest.mark.skip()跳过该用例(函数)
三、Pytest的运行方式
思考:实际开发中是直接assert 1==2吗?
四、文件读取
4.1 读取csv文件
先创建文件,然后读取
4.2 读取xml文件
5:allure
Allure是一款轻量级并且非常灵活的开源测试报告框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。
首先配置allure的环境
验证是否配置成功
其次安装allure
执行案例
课后代码:
class lx(object):
def add(self,a,b):
c = a+b
return c
def kl(self,a,b):
c = a-b
return c
def op(self,a,b):
c = a*b
return c
def gh(self,a,b):
c = a/b
return c
# c = CalcClass()
# print(c.reduct(1,2))
if __name__ == '__main__':
c =CalcClass()
print(c.reduct(1, 2))