我做了一些测试,现在我遇到了问题。该测试是参数化的:
def pytest_generate_tests(metafunc):
...
metafunc.parametrized("param", range(1,2,3)
def test_sometest(param):
...
现在我想编写一个setup_function函数,它将了解参数。类似的东西:
def setup_function(function, param):
...
那么有没有选择呢?
感谢
答案 0 :(得分:0)
执行此操作的最佳方法是使用fixture而不是setup_function()
:
import pytest
pytest.fixture(params=[1, 2, 3])
def fix(request):
if request.param == 1:
return 1
else:
return -1
def test_sometest(fix):
pass
这也比pytest_generate_tests
方法更好,因为py.test可以确定在实际需要开始执行测试之前将执行哪些测试,这有助于选择要运行的测试(-k
)等