2011-02-16 43 views
0

問題摘要:當我更改文件中引用的任何頁面時,自動測試是否應該觸發我的/pages_controller_spec.rb測試中的任何一個?爲什麼我修改html.erb頁面時不會觸發spec/controller/pages_controller_spec.rb測試?

示例:我在spec/controller/pages_controller_spec.rb文件中測試了特定頁面的標題 - 例如, about.html.erb - 但是當我編輯該文件(about文件)時,我的自動測試無一觸發。如果我重新加載自動測試或運行手動'rspec spec /',所有測試都會通過 - 他們只是不會自動觸發,這正是我想要的。


這似乎是由設計,因爲當我運行自動測試-v,它表明沒有與所指的個人頁面相關的測試 - 摘錄:

...
沒有測試匹配的應用程序/視圖/頁/ contact.html.erb
沒有測試匹配的應用程序/視圖/頁/ help.html.erb
沒有測試匹配的應用程序/視圖/頁/ home.html.erb
...

我所有的測試運行綠色順便說一句,和自動測試+ spork/etc觸發器就好了,當我編輯文件,我有一個特定的_spec文件與之關聯(例如在我的例子中的上述文件& app/controllers/pages_controller.rb)。這只是這些困擾我的html.erb文件。

所以我想我真正的問題歸結爲:是這個用戶錯誤還是自動測試真的忽略這些相關的html.erb文件?如果我想要測試這些文件,我是否必須編寫明確的測試來打這些文件?這對我來說似乎是錯誤的,因爲我可以通過從html.erb文件中刪除行/等(但不更改基本pages_controller.rb文件)來徹底打破我的測試,並且在這種情況下,自動測試不會觸發測試。


環境細節等:

我運行軌道3.0.1 ZenTest /自動測試和叉勺。這個問題的存在既沒有叉勺運行,所以我猜這是不相關的,但這裏是我的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使用簡單凱特/終端「IDE」,如果它很重要。但我認爲這是一個配置問題,而不是環境問題或錯誤。

回答

1

我的理解是,當您對視圖進行更改時,autotest不會運行。您可以添加配置選項,但添加要監視的特定路徑。以下是來自RSpec github wiki的一個示例,用於添加對集成測試的支持:

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