0

Summary of question: Is autotest supposed to 'trigger' any of my /pages_controller_spec.rb tests when I change any of the pages referenced in the file?

Example: I have a test in the spec/controller/pages_controller_spec.rb file that tests for the title of a specific page - e.g. about.html.erb - but when I edit that file (the about file), none of my autotests trigger. All tests pass if I reload autotest or run a manual 'rspec spec/' - they just aren't triggering automatically, which is what I want.


This appears to be by design, because when I run autotest -v, it shows that there are no tests associated with the individual pages in question - excerpt:

...
No tests matched app/views/pages/contact.html.erb
No tests matched app/views/pages/help.html.erb
No tests matched app/views/pages/home.html.erb
...

All of my tests run green btw, and autotest + spork/etc triggers just fine when I edit files where I have a specific _spec file associated with it (e.g. the above file in my example & app/controllers/pages_controller.rb). It's just these html.erb files that are bothering me really.

So I guess my real question boils down to this: is this user error or does autotest really ignore these related html.erb files? Do I have to write explicit tests to hit these files if I want them tested? This seems wrong to me because I could completely break my tests by removing lines/etc from the html.erb file (but NOT changing the base pages_controller.rb file), and in that case autotest wouldn't trigger a test..


Environment details, etc:

I'm running rails 3.0.1 with ZenTest/autotest and Spork. This problem exists both with and without Spork running, so I'm guessing it's not relevant, but here is my Gemfile nevertheless:

  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

This is Ubuntu 10.1 using a simple Kate/Terminal "IDE" if it matters. But again I think this is a configuration question and not an environment issue or bug.

4

1 に答える 1

1

ビューに変更を加えたときに自動テストが実行されないことは理解しています。ただし、構成オプションを追加して、監視する特定のパスを追加できます。統合テストのサポートを追加するための RSpec github wiki の例を次に示します。

Autotest.add_hook :initialize do |at|
  at.add_mapping(%r%^spec/(integration)/.*rb$%) {|filename, _|
    filename
  }
end
于 2011-02-16T06:34:03.073 に答える