Ruby on rails 为什么不';t spec/controller/pages\u controller\u spec.rb当我修改html.erb页面时会触发测试吗?
问题摘要:当我更改文件中引用的任何页面时,自动测试是否应该“触发”任何my/pages\u controller\u spec.rb测试 示例:我在spec/controller/pages\u controller\u spec.rb文件中有一个测试,用于测试特定页面的标题-例如about.html.erb-但当我编辑该文件(about文件)时,不会触发任何自动测试。如果我重新加载自动测试或运行手动“rspec spec/”,所有测试都会通过-它们不会自动触发,这正是我想要的Ruby on rails 为什么不';t spec/controller/pages\u controller\u spec.rb当我修改html.erb页面时会触发测试吗?,ruby-on-rails,ruby-on-rails-3,autotest,Ruby On Rails,Ruby On Rails 3,Autotest,问题摘要:当我更改文件中引用的任何页面时,自动测试是否应该“触发”任何my/pages\u controller\u spec.rb测试 示例:我在spec/controller/pages\u controller\u 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匹配的测试
顺便说一句,我的所有测试都运行绿色,当我编辑与特定规范文件关联的文件时(例如,我的示例中的上述文件&app/controllers/pages\u controller.rb),autotest+spork/etc会触发。正是这些html.erb文件真正困扰着我 所以我想我真正的问题可以归结为:这是用户错误还是自动测试真的忽略了这些相关的html.erb文件?如果我想测试这些文件,是否必须编写显式测试来命中它们?这对我来说似乎是错误的,因为我可以通过从html.erb文件中删除行/etc(但不更改basepages\u controller.rb文件)来完全破坏我的测试,在这种情况下,自动测试不会触发测试
环境详情等: 我使用ZenTest/autotest和Spork运行rails 3.0.1。这个问题在Spork运行和不运行的情况下都存在,所以我猜这与此无关,但这是我的GEM文件:
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
这是Ubuntu10.1,如果重要的话,它使用一个简单的Kate/终端“IDE”。但我再次认为这是一个配置问题,而不是环境问题或bug。我的理解是,当您更改视图时,自动测试不会运行。您可以添加一个配置选项来添加要监视的特定路径。以下是RSpec github wiki中添加集成测试支持的示例:
Autotest.add_hook :initialize do |at|
at.add_mapping(%r%^spec/(integration)/.*rb$%) {|filename, _|
filename
}
end