Я хочу, чтобы мои тесты терпели неудачу, если они выполняются дольше определенного времени (скажем, 500 мс), потому что это отстой, когда нагрузка слегка медленных тестов увеличивается, и внезапно у вас возникает эта большая задержка каждый раз, когда вы запускаете набор тестов. Существуют ли какие-либо плагины или что-то еще для Nose, которые уже делают это?
Заставить Nose провалить медленные тесты
Ответы (2)
Я с уважением предлагаю изменить значение слова «сломанный» — плохая идея.
Значение неудачного/"красного" теста никогда не должно быть чем-то иным, кроме как "эта функциональность не работает". Любое другое действие рискует снизить ценность тестов.
Если вы реализуете это, а затем на следующей неделе несколько тестов провалятся, будет ли это индикатором того, что
- Ваши тесты работают медленно?
- Код сломан?
- Оба вышеперечисленных одновременно?
Я полагаю, что было бы лучше собирать MI из вашего процесса сборки и отслеживать его, чтобы обнаруживать создание медленных тестов, но пусть красный цвет означает «сломанную функциональность», а не «сломанную функциональность и/или медленный тест».
Для случаев, когда важно время (например, требования реального времени):
http://nose.readthedocs.org/en/latest/testing_tools.html
nose.tools.timed(limit)
Тест должен быть завершен в течение указанного срока, чтобы пройти его.
Пример использования:
from nose.tools import timed @timed(.1) def test_that_fails(): time.sleep(.2)