Skip to main content
Pytest 支持前置后置操作:测试用例执行前和后,分别执行一些操作。 这在实际的自动化测试中,非常实用,比如测试用例执行前,需要先登录,测试用例执行后,需要先登出。
注意:这些前置后置函数名是固定的,Pytest 执行时会按照方法名扫描从而开始执行。另外,若你了解其它语言或者框架 可以将 Pytest 前后置函数理解为生命周期函数或者钩子函数!

函数级别

test_a.py
def setup_function():
    print("函数前置:测试开始前执行===> ",end="")

def teardown_function():
    print(" <===函数后置:测试结束后执行")

def test_one():
    assert 1 == 1
执行结果
=== test session starts ===
collected 1 item
test_a.py 函数前置:测试开始前执行===> . <===函数后置:测试结束后执行
=== 1 passed in 0.00s ===

类级别

test_a.py
class TestClass:
    @classmethod
    def setup_class(cls):
        print("类前置:类开始前执行一次")
    
    @classmethod
    def teardown_class(cls):
        print("类后置:类结束后执行一次")
    
    def setup_method(self):
        print("方法前置:每个测试方法前执行")
    
    def teardown_method(self):
        print("方法后置:每个测试方法后执行")
    
    def test_one(self):
        assert True
    
    def test_two(self):
        assert True