Огурец висит после того, как все сценарии пройдены - PullRequest
3 голосов
/ 30 января 2012

У меня есть приложение 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 Ответ

0 голосов
/ 13 декабря 2012

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

...