我正在测试一些工程方程,其中有几个参数返回浮点数组。为了测试所有的情况,我想使用一些固定装置。我目前将测试用例存储在一个简单的文件中,加载它们,然后返回感兴趣的测试用例。有一个更好的方法吗?生成多个pytest夹具
@pytest.fixture(params=[0, 1, 2])
def test_case(request):
fpath = pathlib.Path(__file__).parent
fpath /= 'test_data'/'test_cases.json'
test_cases = json.load(fpath.open())
return test_cases[request.param]
def test_function(test_case):
# Run the test
我不确定我是否理解这个问题。 为什么不直接在python文件中内联数组? – nitzpo
由于Python文件中的数据非常复杂 – arkottke
您的意思是JSON文件?如果是的话,你必须保存在JSON文件中的数据,那么这是非常多的。您可以通过使用'pytest_generate_tests'挂钩来扫描目录并对其中的每个文件运行测试,对此代码进行轻微改进。这样,当你创建一个新的JSON文件时,它会自动添加到测试中。 – nitzpo