2009-10-29 69 views
1

我想在自動測試中添加一個鉤子來觸發測試,當JavaScript文件被更改。紅寶石自動測試與add_mapping

下面是我使用的.autotest文件。該語法似乎是正確的,但更新JavaScript文件時沒有任何事情發生。

第一個鉤子工作正常,第二個鉤子沒有。


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

    at.add_mapping(%r%^public/(javascripts)/.*js$%) do |f, _| 
    at.files_matching %r%^spec/(selenium)/.*rb$% 
    end 
end 

回答

1

上述代碼有效,但是Rspec Rails的discovery.rb文件添加了一個異常來忽略公共目錄。

在上面的autotest文件中,需要刪除public/的例外。

at.remove_exception "public/" 

然後添加到被忽略任何公開的文件或目錄:

%w{stylesheets images assets}.each {|exception|at.add_exception(exception)} 

我結束了是:


Autotest.add_hook :initialize do |at| 

    at.add_mapping(%r%^spec/(selenium)/.*rb$%) { |filename, _| 
    filename 
    } 

    at.remove_exception "public/" 
    %w{.git public/stylesheets public/images public/assets}.each {|exception|at.add_exception(exception)} 

    at.add_mapping(%r%^public/(javascripts)/.*js$%, true) do |f, _| 
    (at.files_matching %r%^spec/(selenium)/.*rb$%) 
    end 
end