Почему тесты spec / controller / pages_controller_spec.rb не запускаются, когда я изменяю страницы html.erb? - PullRequest
0 голосов
/ 16 февраля 2011

Краткое содержание вопроса: Предполагается ли, что автотест запускает какой-либо из моих тестов /pages_controller_spec.rb, когда я изменяю какие-либо страницы, на которые есть ссылки в файле?

Пример: у меня есть тест в файле spec / controller / pages_controller_spec.rb, который проверяет заголовок конкретной страницы - например, about.html.erb - но когда я редактирую этот файл (файл about), ни один из моих автотестов не срабатывает. Все тесты проходят успешно, если я перезагружаю автотест или запускаю 'rspec spec /' вручную - они просто не запускаются автоматически, чего я и хочу.


Похоже, это сделано специально, потому что когда я запускаю autotest -v, он показывает, что нет никаких тестов, связанных с отдельными страницами, о которых идет речь - отрывок:

...
Нет подходящих тестов app / views / pages / contact.html.erb
Нет подходящих тестов app / views / pages / help.html.erb
Нет подходящих тестов app / views / pages / home.html.erb
...

Все мои тесты выполняются зеленым, кстати, и autotest + spork / etc прекрасно запускается, когда я редактирую файлы, с которыми связан определенный файл _spec (например, файл выше в моем примере & app / controllers / pages_controller.rb ). Меня беспокоят именно эти html.erb-файлы.

Так что я думаю, что мой реальный вопрос сводится к следующему: это ошибка пользователя или действительно ли автоматическое тестирование игнорирует эти связанные файлы html.erb? Нужно ли писать явные тесты, чтобы поразить эти файлы, если я хочу, чтобы они были проверены? Это кажется мне неправильным, потому что я мог полностью прервать свои тесты, удалив строки / etc из файла html.erb (но НЕ изменив базовый файл pages_controller.rb), и в этом случае автотест не вызвал бы тест ..


Сведения об окружающей среде и т.д .:

Я использую рельсы 3.0.1 с ZenTest / autotest и Spork. Эта проблема существует как при работе Spork, так и без нее, так что, думаю, она не актуальна, но, тем не менее, вот мой Gemfile:

  source 'http://rubygems.org'

  gem 'rails', '3.0.1'
  gem 'sqlite3-ruby', :require => 'sqlite3'

  group :development do
    gem 'rspec-rails'
  end

  group :test do
    gem 'rspec-rails'
    gem 'webrat', '0.7.1'
    gem 'test_notifier'
    gem 'spork', '~> 0.9.0.rc'
  end

Это Ubuntu 10.1, использующая простую "IDE" Kate / Terminal, если это имеет значение. Но опять же я думаю, что это вопрос конфигурации, а не проблема или ошибка среды.

1 Ответ

1 голос
/ 16 февраля 2011

Насколько я понимаю, автотест не запускается, когда вы вносите изменения в представления.Вы можете добавить опцию конфигурации, чтобы добавить конкретный путь для мониторинга.Вот пример из вики RSpec github для добавления поддержки интеграционных тестов:

Autotest.add_hook :initialize do |at|
  at.add_mapping(%r%^spec/(integration)/.*rb$%) {|filename, _|
    filename
  }
end
...