Установка таймаутов с супертестом не работает

Я пытаюсь протестировать свой сервер с помощью такого кода:

describe 'POST /do/some/stuff/', ->
  it 'should do this thing', (done) ->
    request app
      .post '/do/some/stuff/'
      .timeout 10000
      .expect 200
      .end (err, res) ->
        return done err if err?
        done()

То, что делает сервер, обычно занимает несколько секунд, что больше, чем время ожидания по умолчанию в 2000 мс, поэтому я вызываю .timeout 10000. Однако, несмотря на это, когда я запускаю код, я получаю:

1) POST /do/some/stuff/ should do this thing:
   Error: timeout of 2000ms exceeded

Что мне нужно сделать, чтобы увеличить этот тайм-аут?


person limp_chimp    schedule 13.05.2014    source источник


Ответы (2)


Изменение тайм-аута на вашем объекте request ничего не меняет на тайм-аут Mocha по умолчанию. Выполнение this.timeout(10000) (независимо от эквивалента CoffeeScript) внутри вашего теста должно позаботиться об этом.

person Louis    schedule 13.05.2014
comment
у меня не работает, у меня есть 20-секундное ожидание вызова запроса, и он все равно переходит прямо к моему утверждению, прежде чем он сможет вернуться. - person PositiveGuy; 19.10.2015
comment
@WeDoTDD Если это не работает для вас, это потому, что есть еще одна проблема с вашим кодом. Вы должны задать другой вопрос. Голосование против ответа, который действительно действительно работает, равносильно причинению вреда переполнению стека. - person Louis; 19.10.2015

Вы можете указать время ожидания при запуске тестовой среды. Например, для мокко это будет mocha -t 7000 . В качестве альтернативы вы можете добавить тест с setTimeout только для создания задержки (если требуемая задержка находится между тестами).

person ttfreeman    schedule 14.05.2020