2012-02-01 141 views
1

我与Ruby on Rails Tutorial下沿。卫队Ruby on Rails的3.2教程

事情相当不错的了,但我发现后,我保存一些文件(查看或控制文件),后卫只运行,但是当我救别人(或航线规格文件)不运行。我已经把卫兵连接到了Spork,不知道这是否重要。

当我看着运行卫队/叉勺控制台窗口中,我注意到一个错误后,我保存的非运行测试:

Exception encountered: #<LoadError: no such file to load -- /Users/Tyler/Development/FirstRails/sample_app/spec/routing 

我不知道该卫队文件的语法是什么,我刚刚复制了这个例子。这是保护文件:

# A sample Guardfile 
# More info at https://github.com/guard/guard#readme 

guard 'rspec', :version => 2, :all_after_pass=>false, :cli => '--drb' do 
    watch(%r{^spec/.+_spec\.rb$}) 
    watch(%r{^lib/(.+)\.rb$})  { |m| "spec/lib/#{m[1]}_spec.rb" } 
    watch('spec/spec_helper.rb') { "spec" } 

    # my edits 
    watch(%r{^app/controllers/(.+)_(controller)\.rb$}) do |m| 
    ["spec/routing/#{m[1]}_routing}spec.rb", 
    "spec/#{m[2]}s/#{m[1]}_${m[2]}_spec.rb", 
    "spec/acceptance/#{m[1]}_spec.rb", 
    "spec/requests/#{m[1]}_spec.rb"] 
end 

    # Rails example 
    watch(%r{^spec/.+_spec\.rb$}) 
    watch(%r{^app/(.+)\.rb$})       { |m| "spec/#{m[1]}_spec.rb" } 
    watch(%r{^app/(.*)(\.erb|\.haml)$})     { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } 
    watch(%r{^lib/(.+)\.rb$})       { |m| "spec/lib/#{m[1]}_spec.rb" } 
    watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#  {m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/# {m[1]}_spec.rb"] } 
    watch(%r{^spec/support/(.+)\.rb$})     { "spec" } 
    watch('spec/spec_helper.rb')      { "spec" } 
    watch('config/routes.rb')       { "spec/routing" } 
    watch('app/controllers/application_controller.rb') { "spec/controllers" } 
    # Capybara request specs 
    watch(%r{^app/views/(.+)/.*\.(erb|haml)$})   { |m| "spec/requests/#{m[1]}_spec.rb" } 
end 

guard 'spork', :cucumber_env => { 'RAILS_ENV' => 'test' }, :rspec_env => { 'RAILS_ENV' => 'test' } do 
    watch('config/application.rb') 
    watch('config/environment.rb') 
    watch(%r{^config/environments/.+\.rb$}) 
    watch(%r{^config/initializers/.+\.rb$}) 
    watch('Gemfile') 
    watch('Gemfile.lock') 
    watch('spec/spec_helper.rb') 
    watch('test/test_helper.rb') 
end 

特别是,我的编辑:

# my edits 
    watch(%r{^app/controllers/(.+)_(controller)\.rb$}) do |m| 
    ["spec/routing/#{m[1]}_routing}spec.rb", 
    "spec/#{m[2]}s/#{m[1]}_${m[2]}_spec.rb", 
    "spec/acceptance/#{m[1]}_spec.rb", 
    "spec/requests/#{m[1]}_spec.rb"] 
end  

我没有投机/路由文件夹中。

有人看到一个简单的错字?或者还有其他一些我需要考虑的事情吗?

我在轨道上3.2

感谢

+0

如果没有投机/路由目录,为什么你在看吗? :-) – 2012-02-01 20:09:14

+0

我只是跟着教程 – 2012-02-01 20:12:27

回答

2

发现:

["spec/routing/#{m[1]}_routing}spec.rb", 

通知routingspec

之间的第二}现在写着:

["spec/routing/#{m[1]}_routing_spec.rb", 

还解释了丢失的目录shananigans。

谢谢!

1

无法在你的答案泰勒(也许是因为我是新来的)评论,但我想你已经多次在Guardfile几行:

watch(%r{^spec/.+_spec\.rb$}) 
watch(%r{^lib/(.+)\.rb$})  { |m| "spec/lib/#{m[1]}_spec.rb" } 
watch('spec/spec_helper.rb') { "spec" } 

我注意到这是运行测试两次;删除重复的行解决了这个问题。