Python Py.test循环多次通过测试

Python Py.test循环多次通过测试,python,pytest,Python,Pytest,我尝试重复N次测试(收集的测试相同) 原因:通过这样做,我想看看测试的速度是否降低,或者我可以收集一个参数的“平均时间”,然后通过另一个参数,再次获得“平均时间” 我的理解是使用def pytest\u runtestloop()hook,但是我对它有问题 以下是我的钩子代码: def pytest_runtestloop(session): repeat = int(session.config.option.repeat) assert isinstance(repeat,

我尝试重复N次测试(收集的测试相同)

原因:通过这样做,我想看看测试的速度是否降低,或者我可以收集一个参数的“平均时间”,然后通过另一个参数,再次获得“平均时间”

我的理解是使用
def pytest\u runtestloop()
hook,但是我对它有问题

以下是我的钩子代码:

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
将仅在第一个循环期间调用,如果我将
session.config.option.设置为2,则将同时调用
test\u something


我做错了什么?有更好的方法吗?

pytest-2.3.4似乎在内部保持一些状态,以防止装置再次运行
pytest\u runtest\u循环
编写时没有考虑到您的用例。你可以提交一个关于它的“bug”问题,我们可以看看我们能做些什么来修复它。(我很快看了看,但无法立即看出哪里出了问题,需要更多的探索)