目录
初始化和清除
# 模块级别的初始化及清除
def setup_module():
print('\n********初始化-模块*******')
def teardown_module():
print('*********清除-模块********')
class Test_rundemo0:
# 类的初始化和清除
@classmethod
def setup_class(cls):
print('==========初始化-类=========')
@classmethod
def teardown_class(cls):
print('=========清除-类 ===========')
# 方法的初始化和清除
def setup_method(self):
print('\n&&&&&&&&&&&初始化-方法&&&&&&&&&')
def teardown_method(self):
print('\n&&&&&&&&&&&清除-方法&&&&&&&&&&&&')
def test_001(self):
print('行到水穷处,坐看云起时')
def test_002(self):
print('判断整数和字符是否相等')
assert 1 == 2,"整数不等于字符"
class Test_rundemo1:
# 方法的初始化和清除
def setup_method(self):
print('\n&&&&&&&&&&&初始化-方法&&&&&&&&&')
def teardown_method(self):
print('\n&&&&&&&&&&&清除-方法&&&&&&&&&&&&')
def test_101(self):
print('行到水穷处,坐看云起时')
def test_202(self):
print('判断整数和字符是否相等')
assert 1 == 1,"整数不等于字符"
运行日志如下:
模块级别
模块级别的初始化清除方法是对整个.py文件执行的操作,放在文件的最前面,class类之前,从开始运行到结束,对整个文件进行一次初始化和清除。使用setup_module()和teardown_module()方法。
类级别
类级别的初始化和清除同unittest框架,需要使用@classmethod装饰器,对需要初始化和清除的class测试类进行一次初始化和清除工作。使用setup_class()和teardown_class()方法。
方法级别
方法级别的初始化和清除对在测试类下面添加了测试用例方法级别的每一个测试用例进行初始化和清除工做,放在calss下面的所有测试用例方法之前使用。使用使用setup_method()和teardown_method()方法。
目录级别
目录级别的初始化和清除需要在要初始化和清除的目录下面创建一个单独的.py文件,文件名为conftest。文件中的内容如下:
import pytest
@pytest.fixture(scope='package',autouse=True)
def st_emptyEnv():
print('\n#############初始化—目录#############')
yield
# yield下面的内容为清除操作
print('#############清除—目录#############')
目录文件初始化和清除需要使用pytest的装饰器方法,所以要导入pytest模块。清除代码放在yield生成器后面,在使用目录级别的清除的时候有一个BUG,清除机制并不一定会在最后一个用例运行完之后执行。这样的话一个目录的用例执行之后,因为没有执行清除操作,所以可能会导致后面的目录文件在执行时产生错误,不建议使用。