Заставить Нос провалиться медленные тесты - PullRequest
8 голосов
/ 01 июля 2011

Я хочу, чтобы мои тесты не проходили, если они выполняются дольше определенного времени (скажем, 500 мс), потому что они отстой, когда нагружается нагрузка несколько медленных тестов, и внезапно у вас появляется такая большая задержка при каждом запуске набора тестов,Есть ли какие-нибудь плагины или что-нибудь для Nose, которые уже делают это?

Ответы [ 2 ]

11 голосов
/ 24 июля 2012

Для случаев, когда важно время (например, требования в реальном времени):

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)
7 голосов
/ 01 июля 2011

Я с уважением предполагаю, что изменение значения «сломанный» - плохая идея.

Значение неудавшегося / «красного» теста никогда не должно быть чем-то иным, кроме «эта функциональность нарушена». Чтобы сделать что-либо еще, существует риск ослабления значения тестов.

Если вы реализуете это, а затем на следующей неделе пройдёт несколько тестов, будет ли это индикатором того, что

  • Ваши тесты работают медленно?
  • Кодсломан?
  • Оба вышеперечисленных одновременно?

Я полагаю, что было бы лучше собрать MI из вашего процесса сборки и отслеживать его, чтобы определить медленные тесты, но пусть красный цвет означает «нарушенная функциональность», а не «нарушенная функциональность и / илимедленный тест. "

...