Огурец зависает после того, как все сценарии прошли

У меня есть приложение jRuby on Rails с некоторыми тестами на огурец.

Проблема в том, что cucumber features зависает после выполнения всех шагов, пока я не нажму ctrl + c. Интересно, что это происходит только в том случае, если все тесты пройдены.

10 scenarios (10 passed)
116 steps (116 passed)
13m59.058s
-> hangs here

Я пытался добавить глобальный at_exit хук, это выполняется, а затем команда останавливается.

Вот мой bundle list https://gist.github.com/37f2448055071bbbc636

Мое временное решение - добавить at_exit крюк, как это

at_exit do 
  exit! !($!.nil? || $!.is_a?(SystemExit) && $!.success?)
end

Некоторые соединения могут быть оставлены открытыми, данные не очищены и т. Д., Но по крайней мере они завершатся с правильным кодом состояния, который используется CI-сервером.

1 ответ

Я понимаю, что это очень старый пост, но если кто-то наткнется на это, за:

https://github.com/cucumber/cucumber-js/blob/master/docs/cli.md

если вы добавите --exitпосле вашей команды огурца огурец выйдет, когда тест будет завершен. По крайней мере, это сработало для меня.

В нашем случае мы поняли, что эта блокировка происходит, когда мы создали фоновые процессы, которые не были завершены должным образом. Мы исправили это заменить system() звонки с spawn() и уничтожение любых дочерних процессов в нашей ловушке at_exit.

Другие вопросы по тегам