我有一个大型表测试,我想在pytest中使用(一些参数和期望值的数组)。我只想为该测试运行设置,然后计算期望值,并将其用作测试的参数输入。我意识到正确的答案可能是静态的期望值,但是我真的很喜欢计算它们的能力。
首先,我将所有内容都放在了测试中,并在该测试的固定装置中进行了设置,虽然效果很好,但仅充当单个测试。因此,我进行了参数设置,但无法以这种方式设置后计算期望值(它在设置之前在收集时运行)。然后,我将其放入pytest_generate_tests(metafunc)
进行参数化,几乎起作用,除了我需要在其中运行设置以确保在计算之前运行该设置。最终每次都会运行,因为即使没有运行测试也会被收集。
当前方法:
def pytest_generate_tests(metafunc):
if "filter_test" not in metafunc.fixturenames:
return
db_setup()
... calulate expected values ...
metafunc.parametrize('filter_test', [list of tests])
def test_filtering(filter_test):
...
因此,基本上,只想在此测试运行时才运行安装程序,并能够计算出用作我的测试参数的值。