我试图重复测试N次(收集相同的测试)。
为什么:通过这样做,我想看看测试的速度是否降低,或者我可以收集一个参数的“平均时间”,然后传递另一个参数并再次获得“平均时间”。
我的理解是使用def pytest_runtestloop()
钩子,但是我遇到了麻烦。
这是我的钩子代码:
def pytest_runtestloop(session):
repeat = int(session.config.option.repeat)
assert isinstance(repeat, int), "Repeat must be an integer"
for i in range(repeat): #@UnusedVariable
session.config.pluginmanager.getplugin("main").pytest_runtestloop(session)
return True
问题是“设置”仅在第一次运行: 例如:
class TestSomething(object):
@classmethod
@pytest.fixture(scope = "class", autouse = True)
def setup(self):
//setup function
def test_something(self):
//test function
此处setup
仅在第一个周期内被调用,如果我将test_something
设置为2,则session.config.option.repeat
将被调用{/ 1}}
我做错了什么?有更好的方法吗?
答案 0 :(得分:2)
似乎pytest-2.3.4在内部保持一些状态,以防止灯具再次运行。 pytest_runtest_loop
并未考虑您的用例。您可以提出有关它的“错误”问题,我们可以看到我们可以做些什么来解决它。 (我很快就看了,但无法立即看到出了什么问题,需要更多的探索)。