一、Pytest 格式要求
文件名 test_开头或者_test结尾
类 Test开头
方法/函数 test_开头
注意:测试类中不可以添加__init__构造函数
二、Pycharm配置pytest为默认执行器
file->Settings->tools/python Integrated Tools->Testing:ddefult test runner选择pytest,点击ok
三、测试用例断言
目的:为了表示与验证软件开发者预期的结果,当程序执行到断言的位置时,对应的断言应该为真,若断言不为真时,程序会中止执行,并给出错误信息
流程:
格式:
assert <表达式>
assert <表达式> <描述>
def test_str():
assert "abc" in "abcde"
import sys
def test_plat():
assert ('linux' in sys.platform),"这是一段提示信息"
四、测试框架结构:setup/teardown
setup_module/teardown_module 全局模块级(模块级别,只调用一次)
setup_function/teardowm_function 函数级,只对函数用例生效,每个函数前后都会执行一次(不在类中)
setup_class/teardown_class 类级,只在类中前后运行一次
setup_method/teardown_method 方法级,类中的每个方法执行前后(方法级别的会在每个用例执行前后执行一次)
setup/teardown 在类中,运行在调用方法的前后
def setup_module():
print("资源准备 setup module")
def teardown_module():
print("资源销毁 teardown module")
def test_case1():
print("case1")
def test_case2():
print("case2")
def setup_function():
print("资源准备 setup function")
def teardown_function():
print("资源销毁 teardown function")
class TestDemo1:
# 类前后分别执行setup和teardown
def setup_class(self):
print("class setup class")
def teardown_class(self):
print("class teardown")
#每个类方法前后分别执行setup、teardown
def setup(self):
print(" setup")
def teardown(self):
print("teardown")
def testdemo1(self):
print("test demo1")
def test_demo2(self):
print("test demo2")
# class TestDemo1:
# # 类前后分别执行setup和teardown
# def setup_class(self):
# print("class setup class")
# def teardown_class(self):
# print("class teardown")
# #每个类方法前后分别执行setup、teardown
# def setup_method(self):
# print(" setup method")
# def teardown_method(self):
# print("teardown method")
#
# def testdemo1(self):
# print("test demo1")
# def test_demo2(self):
# print("test demo2")