Cucumber зависает после прохождения всех сценариев

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


person tomgi    schedule 30.01.2012    source источник


Ответы (2)


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

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

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

person Seth Wheeler    schedule 15.05.2020

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

person KurtPreston    schedule 12.12.2012