2013-02-22 4 views
3

Я пытаюсь повторить тесты N раз (те же самые тесты, которые собираются).Повторяйте цикл тестирования с помощью Py.test

Почему: Я хочу проверить, уменьшается ли скорость тестов или я могу собрать «среднее время» одного параметра, а затем передать другой параметр и снова получить «среднее время».

Мое понимание заключается в использовании 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 будет называться оба раза, если я установил session.config.option.repeat на 2

Что я делаю неправильно? Есть ли лучший подход?

ответ

2

Похоже, что pytest-2.3.4 сохраняет внутреннее состояние внутри, что препятствует запуску светильников. pytest_runtest_loop не был написан с учетом вашего использования. Вы можете указать «ошибку» об этом, и мы можем увидеть, что мы можем сделать, чтобы исправить это. (Я быстро посмотрел, но не мог сразу увидеть, что происходит не так, требует большего изучения).

 Смежные вопросы

  • Нет связанных вопросов^_^