测试框架pytest教程(7)实现 xunit 风格的setup
pytest支持setup和teardown,对于使用unittest和nose框架的用户来说对这些很熟悉,但是在pytest可以使用功能更强大的fixture来实现固定装置。
模块级别
如果单个模块中有多个测试函数和测试类,您可以选择实现以下固定方法,这些方法通常会为所有函数调用一次:
def setup_module(module):"""setup any state specific to the execution of the given module."""def teardown_module(module):"""teardown any state that was previously setup with a setup_modulemethod."""
类级别
在调用类的所有测试方法之前和之后,在类级别调用以下方法
@classmethod
def setup_class(cls):"""setup any state specific to the execution of the given class (whichusually contains tests)."""@classmethod
def teardown_class(cls):"""teardown any state that was previously setup with a call tosetup_class."""
方法级别
在每个方法调用周围都会调用以下方法
def setup_method(self, method):"""setup any state tied to the execution of the given method in aclass. setup_method is invoked for every test method of a class."""def teardown_method(self, method):"""teardown any state that was previously setup with a setup_methodcall."""
直接在模块中定义
def setup_function(function):"""setup any state tied to the execution of the given function.Invoked for every test function in the module."""def teardown_function(function):"""teardown any state that was previously setup with a setup_functioncall."""