Раздражающее уведомление Guard при тестировании

Недавно я сделал простое приложение на ruby ​​и использовал minitest для его тестирования.

Следуя совету из книги Head First Ruby, я автоматизировал это тестирование с помощью Rake (на случай, если это поможет, я напишу, что мне сказали добавить в Rakefile в конце этого поста). Тест, кажется, работает нормально (все проходит так, как я и ожидал), но я всегда получаю это уведомление в конце всего:

rvm/gems/ruby-2.3.0/gems/guard-2.14.0/lib/guard/notifier.rb:28: предупреждение: переменная экземпляра @notifier не инициализирована

Тестирование вручную, когда Ruby сообщает, какие файлы я хочу включить, не имеет этой проблемы, только когда я использую «рейк-тест» для проверки вещей.

Насколько я могу судить, это связано с настройкой Guard, когда я следовал Учебнику Майкла Хартла по Rails в конце главы 3. Я следовал инструкциям по настройке (насколько я могу судить, правильно) , и все это было в совершенно другой папке (в конечном счете, мои проекты ruby ​​и rails имеют одну и ту же родительскую папку, в которой они находятся, но сами находятся в совершенно разных папках ruby_projects и rails_projects). Если возможно, я хотел бы остановить это уведомление в моем приложении ruby, которое я тестирую. Есть ли хороший способ сделать это?

Содержимое файла Rakefile, который я использую, если это поможет: требуется "rake/testtask"

  Rake::TestTask.new(:test) do |t|
  t.libs << "lib"
  t.test_files=FileList['test/**/test_*.rb']
end

Для моего тестового файла требуется минитест/автозапуск, а файл для приложения, которое я тестирую, содержит обычные тесты.


person mc92    schedule 01.06.2016    source источник


Ответы (1)


Какой-то странный конфликт...

Причина в том, что Guard::Notifier.connect не подключен. Обычно, когда вы запускаете охрану, вызывается Guard.setup, который и делает это.

Если вы не используете защиту (например, в интерактивном режиме), то вызов следующего из вашего Rakefile должен обойти проблему:

  Guard::Notifier.connect(notify: false, silent: true)
  Guard::Notifier.disconnect

Это инициализирует переменную.

Для более быстрого ответа всегда сообщайте о таких проблемах на странице проекта на Github. Если вы можете поделиться проектом, в котором это происходит, возможно, возможно лучшее решение. (Лучше всего предоставить репозиторий, так как это действительно ускоряет исправление ошибок, и часто подобные ошибки очень трудно смоделировать без точного кода).

person Cezary Baginski    schedule 05.06.2016