pytest之测试固件的返回值
与unittest中测试固件不同的是,unittest的测试用例类必须继承fixture类,才能在测试用例执行前和后去执行测试固件部分,测试用例类与测试固件类之间的继承就完成了属性之间的调用(self.attribute),在pytest的fixture中(基本都是@pytest.fixture装饰器装饰的函数),测试用例想要调用测试固件的返回值只需要调用测试用例函数的参数即可,上述场景适合测试固件中没有tesardown。
1、如果一个测试固件中有setup和teardown,没有返回值,可以使用yield,也可以使用pytest中request.addfinalizer()函数
@pytest.fixture(scope='function') def mprint(request): print('setup每个函数执行:开始执行测试用例') def teardown(): print('teardown每个函数执行:结束执行测试用例') request.addfinalizer(teardown) @pytest.fixture(scope='function') def mprint(): print('setup每个函数执行:开始执行测试用例') yield print('teardown每个函数执行:结束执行测试用例')
2、如果一个测试固件中有setup和teardown,只能使用pytest中request.addfinalizer()函数
@pytest.fixture(scope='function') def mprint(number, request): print('setup每个函数执行:开始执行测试用例') def teardown(): print('teardown每个函数执行:结束执行测试用例') request.addfinalizer(teardown) return number
浙公网安备 33010602011771号