Хорошо, так что я понял это.Я углубился в источник автотеста, чтобы лучше понять, что происходит.Он создает Regexp.union из всех исключений и игнорирует файлы, относительные пути которых соответствуют скомпилированному выражению.
Чтобы лучше понять ошибку, я добавил все в каталоге моего проекта в .autotest
, кроме ./app
, ./lib
, ./public
, ./script
, ./spec
и ./features
.Примерно так:
# .autotest - to troubleshoot
Autotest.add_hook :initialize do |at|
at.add_exception(%r{^\./\.git})
...
at.add_exception(%r{^\./db})
...
at.add_exception(%r{^\./rerun.txt})
...
end
Когда я это сделал, у меня не было бесконечного цикла.После этого я просто начал комментировать каждое исключение.Оказывается, единственный файл, который мне пришлось игнорировать вручную, был Gemfile.lock
.По какой-то причине это либо изменяется, либо вводит в заблуждение автоматическое тестирование до такой степени, что оно делает цикл огурца.
Таким образом, этот .autotest
решил проблему:
# .autotest - to fix
Autotest.add_hook :initialize do |at|
# Gemfile.lock is causing cucumber to run infinitely. Don't watch it.
at.add_exception(%r{^\./Gemfile.lock})
end
Я собираюсьсообщите в список огурцов, чтобы сообщить им, что они должны добавить это к исключениям встроенного автотеста.