Skip to content

Pytest 测试用例生命周期管理 - 自动生效


简介

在自动化测试中,Fixture 可以用于自动生效(autouse),它们会自动在每个测试用例运行前自动调用,而无需在测试用例中显式引用 Fixture。

这对于执行通用的测试前和测试后操作非常有用。


使用场景

不想原测试⽅法有任何改动,或全部都⾃动实现⾃动应⽤,没有特例,也都不需要返回值时可以选择⾃动应⽤。

解决方案:使⽤ fixture 中参数 autouse=True 实现


使用步骤

  1. 在对应的 fixture ⽅法上⾯加装饰器 @pytest.fixture(autouse=True)
  2. 把 autouse 参数设置为 True。
@pytest.fixture(scope="function",autouse=True)
def login():
     # setup 操作
     print("完成登录操作")
     token = "abcd"
     username = 'hogwarts'
     yield token,username # 相当于return
     # teardown 操作
     print("完成登出操作")

def test_case(login):
    print("demo case")

运行结果:


总结

  • fixture 自动生效