Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么不';t spec/controller/pages\u controller\u spec.rb当我修改html.erb页面时会触发测试吗?_Ruby On Rails_Ruby On Rails 3_Autotest - Fatal编程技术网

Ruby on rails 为什么不';t spec/controller/pages\u controller\u spec.rb当我修改html.erb页面时会触发测试吗?

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/”,所有测试都会通过-它们不会自动触发,这正是我想要的 这似乎是出于设

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