0

问题摘要:当我更改文件中引用的任何页面时,自动测试是否应该“触发”我的任何 /pages_controller_spec.rb 测试?

示例:我在 spec/controller/pages_controller_spec.rb 文件中有一个测试特定页面的标题的测试 - 例如 about.html.erb - 但是当我编辑该文件(关于文件)时,我的自动测试都不会触发. 如果我重新加载自动测试或运行手动“rspec spec/”,所有测试都会通过——它们只是不会自动触发,这正是我想要的。


这似乎是设计使然,因为当我运行 autotest -v 时,它显示没有与所讨论的各个页面相关联的测试 - 摘录:

...
没有匹配的测试 app/views/pages/contact.html.erb
没有匹配的测试 app/views/pages/help.html.erb
没有匹配的测试 app/views/pages/home.html.erb
...

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

所以我想我真正的问题归结为:这个用户错误还是自动测试真的忽略了这些相关的 html.erb 文件?如果我想要测试这些文件,我是否必须编写明确的测试来命中这些文件?这对我来说似乎是错误的,因为我可以通过从 html.erb 文件中删除行/等来完全破坏我的测试(但不更改基本 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/Terminal “IDE”。但我再次认为这是一个配置问题,而不是环境问题或错误。

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 回答