2009-10-29 67 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