Сравните плюсы и минусы Autofeature/autotest против Guard?
Есть ли у кого-нибудь конкретные аргументы в пользу использования одного автотестирующего бегуна над другим? Я использовал Autofeature + autotest, мне очень нравится встроенный процесс, который он устанавливает в том, что он сначала запускает мои тесты rspec, а затем тесты огурца и только последний провал теста - он поддается стандарту рабочий процесс написания тестов огурца, настройка шагов до тех пор, пока они не сработают, а затем опуститесь на единичные тесты для подробной функциональности.
Я использовал охрану в стандартной конфигурации rspec, и она хорошо работала, но я не сбрасывался в тестах огурца - не успевал экспериментировать дальше.
Просто интересно, есть ли у кого-то какие-то конкретные причины для использования одного над другим или один из способов смягчает слабость другого.
Спасибо за ввод,
Тони
Ответы
Ответ 1
Недавно я перешел из автотеста для защиты по какой-то причине, он работает лучше, чем автотест, и у него есть много доступных охранников. Таким образом, с помощью одного процесса вы можете отслеживать множество вещей.
В настоящее время я использую его для Rspec, Passenger и Yard, но список очень длинный, и вы всегда можете реализовать свою охрану, если вам это нужно для чего-то еще.
Я считаю это очень полезным, особенно для пассажира при разработке, потому что он перезагрузит сервер, как только вы измените что-то, что необходимо перезапустить сервер (т.е. маршруты, конфиг и т.д.).
Некоторые из доступных охранников можно каким-то образом заменить, например, с помощью ярда вы можете запустить его собственный сервер, но тогда вам нужно два разных процесса, с защитой вы можете выполнять всю работу с одним процессом.
Другими словами, Guard является скорее универсальной Framework для каждого процесса, который должен выполнить что-то, вызванное сменой файла, autotest ограничивается запуском тестов.
Update
В ответ на ваш комментарий
Вы можете рандомизировать порядок заказа, используя --rand
в вашем .rspec
файле если у вас есть Rspec > 2.8. Таким образом, это достигается по порядку rspec и работает также при вызове rspec с помощью rake
или с rspec
исполняемым файлом.
Для меньшего количества файлов есть guard-less.
Кроме того, последние версии защиты также встроены в консоль Rails с pry, доступным, когда защита неактивна, очень полезна в режиме разработки.
Ответ 2
Министры, стрела и охрана не работают вместе.
LoadError: no such file to load -- -r
Из-за этого: https://github.com/semaperepelitsa/spork-minitest/issues/2
Итак, я переключился на автотест (см. легкий тестовый набор Майкла Гроссера в README). Fsevent, похоже, снижает нагрузку на процессор, но не как "реактивный", как моя прежняя настройка Guard с fsevent. Я не уверен, почему.
Обновление: на самом деле я уверен, почему. Я открыл (второстепенную) проблему в автотесте:
https://github.com/grosser/autotest/issues/33
Это сон по умолчанию 1 секунда. У меня есть обход проблемы, но это взломать. Не знаю элегантного решения. При этом он ведет себя так же быстро, как Guard, и работает с Minitest.
Autotest + Minitest, похоже, не может сделать раскрашенный вывод, потому что это не tty. Это не относится к Autotest iirc. Мне нравится настройка Guardfile Guard, я не знаю, где "наблюдатели" находятся в Autotest. Пока это работает, но это может быть проблемой.