fixture为可靠的和可重复执行的测试提供固定的基线(可以理解为测试的固定配置,使不同范围的测试都能够获得统一的配置),fixture提供了区别于传统单元测试(setup/teardown)风格的令人惊喜的功能,而且pytest做得更炫。
1. fixture 可以作为一个函数的参数被调用
test_fixture.py:
1 @pytest.fixture 2 def numbers(): 3 a = 10 4 b = 20 5 c = 30 6 return [a, b, c] 7 8 9 def test_method1(numbers): 10 x = 15 11 assert numbers[0] == x 12 13 14 def test_method2(numbers): 15 y = 20 16 assert numbers[1] == y
test_fixture.py 中的所有test_*()测试方法在执行前都会先执行 numbers()
代码执行过程:
test_
开头的函数,于是找到了test_method1() 和 test_method2()
test_method1() 和 test_method2()
测试函数,需要一个参数numbers,于是pytest找到并且调用这个用@pytest.fixture
装饰的numbers()
函数2. fixture可以在一个类、或者一个模块、或者整个session中被共享,加上范围即可:
@pytest.fixture(scope = "module")
https://zhuanlan.zhihu.com/p/87775743
pytest- fixture 测试的固定配置,使不同范围的测试都能够获得统一的配置
原文:https://www.cnblogs.com/jane21/p/14879060.html