为什么修改html.erb页面时不会触发spec / controller / pages_controller_spec.rb测试?

时间:2011-02-16 02:48:28

标签: ruby-on-rails ruby-on-rails-3 autotest

问题摘要:当我更改文件中引用的任何页面时,自动测试是否应该“触发”我的任何/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
...

我的所有测试都运行绿色顺便说一句,并且当我编辑文件时,自动测试+ spork / etc触发正常,我有一个与之关联的特定_spec文件(例如我的示例中的上述文件& app / controllers / pages_controller)。 RB)。只是这些html.erb文件真的困扰着我。

所以我想我真正的问题归结为:这个用户错误或自动测试真的忽略了这些相关的html.erb文件吗?如果我想测试这些文件,我是否必须编写显式测试来命中这些文件?这对我来说似乎不对,因为我可以通过从html.erb文件中删除行/ etc来完全破坏我的测试(但不更改基本pages_controller.rb文件),在这种情况下,自动测试不会触发测试..


环境细节等:

我使用ZenTest / autotest和Spork运行rails 3.0.1。无论有没有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,如果重要的话,使用简单的Kate /终端“IDE”。但我再次认为这是一个配置问题,而不是环境问题或错误。

1 个答案:

答案 0 :(得分:1)

据我了解,当您对视图进行更改时,autotest不会运行。您可以添加配置选项以添加要监视的特定路径。以下是RSpec github wiki中添加对集成测试支持的示例:

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