中企动力 做网站 怎么样,企业 官网,手机网站微信咨询,中国机械加工网19易0下6拉enpytest.fixture是一个装饰器#xff0c;用于声明一个fixture。Fixture是pytest中的一个核心概念#xff0c;它提供了一种将测试前的准备代码#xff08;如设置测试环境、准备测试数据等#xff09;和测试后的清理代码#xff08;如恢复测试环境、删除临时文件等#xff0…pytest.fixture是一个装饰器用于声明一个fixture。Fixture是pytest中的一个核心概念它提供了一种将测试前的准备代码如设置测试环境、准备测试数据等和测试后的清理代码如恢复测试环境、删除临时文件等与测试用例分离的方法。通过这种方式测试用例可以更加专注于测试逻辑本身而不是测试环境的准备和清理。 pytest使用fixture实现接受一个函数作为输入函数内部可以包含条件表达式、循环等复杂逻辑并返回一个参数列表 import pytest# 直接传入数组
pytest.fixture(params[1,2,3])
def param_complex(request):print(--------fixture\t)print(request)print(request.param)return request.param
def test_generatePara(param_complex):print(---------param_complex------- test\t)print(param_complex)assert Truedef generate_param(a, b):params []ouShu []jiShu []for i in range(a,b):if i % 2 0:ouShu.append(i)else:jiShu.append(i)params.append(ouShu)params.append(jiShu)return params# 01 函数执行generate_param(2,6)在pytest解析fixture声明时执行生成一个包含多个pytest.param对象的列表
# 02 参数化测试用例使用param_complex_gene fixture pytest将pytest.param对象的列表作为params的值并为列表中的每个pytest.param对象执行一次测试用例
# 03 fixture函数对于列表中的每个pytest.param对象pytest都会调用param_complex_gene fixture函数一次并将当前的pytest.param对象作为request.param传递给这个函数。然后param_complex_gene函数返回request.param即当前的测试参数。
pytest.fixture(paramsgenerate_param(2,6))
def param_complex_gene(request):print(--------fixture param_complex_gene \t)print(request)print(request.param)return request.paramdef test_generatePara1(param_complex_gene):print(---------param_complex_gene------- test\t)print(param_complex_gene)assert True --------fixture SubRequest param_complex for Function test_generatePara[1] 1 PASSED [ 20%]---------param_complex------- test 1 --------fixture SubRequest param_complex for Function test_generatePara[2] 2 PASSED [ 40%]---------param_complex------- test 2 --------fixture SubRequest param_complex for Function test_generatePara[3] 3 PASSED [ 60%]---------param_complex------- test 3 --------fixture param_complex_gene SubRequest param_complex_gene for Function test_generatePara1[param_complex_gene0] [2, 4] PASSED [ 80%]---------param_complex_gene------- test [2, 4] --------fixture param_complex_gene SubRequest param_complex_gene for Function test_generatePara1[param_complex_gene1] [3, 5] PASSED [100%]---------param_complex_gene------- test [3, 5] Global cleanup