2012-08-07 26 views
0

與警衛3.6.2自動化測試在railstutorial.com第3章編輯Guardfile錯誤

教程..

require 'active_support/core_ext' 

guard 'rspec', :version => 2, :all_after_pass => false do . . . 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", 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
         "spec/requests/#{m[1].singularize}_pages_spec.rb")] end watch(%r{^app/views/(.+)/}) do |m| 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
         "spec/requests/#{m[1].singularize}_pages_spec.rb") end . . . end 

,但我不知道如何編輯我的Guardfile

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

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

    # Rails example 

...

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

    # Rails example 
    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{^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('config/routes.rb')       { "spec/routing" } 
    watch('app/controllers/application_controller.rb') { "spec/controllers" } 

..

請幫幫我。 只需插入嗎? 但同樣的錯誤..

回答

6

Listing 3.3.4只是告訴你什麼樣的變化和補充,你應該到默認Guardfile。所以:

更改線路

guard 'rspec', :version => 2 do 

guard 'rspec', :version => 2, :all_after_pass => false do 

,並添加代碼

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", 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
        "spec/requests/#{m[1].singularize}_pages_spec.rb")] 
end 
watch(%r{^app/views/(.+)/}) do |m| 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
        "spec/requests/#{m[1].singularize}_pages_spec.rb") 
end 

其餘您Guardfile結束。

或者,你可以複製和直接從sample_app Github repo's Guardfile粘貼。

+0

oh ..感謝您的幫助 – 2012-08-08 15:17:38

+0

不客氣。如果此答案解決了您的問題,請點擊打勾按鈕接受答案。 – 2012-08-08 15:41:07

+0

解決問題! – 2012-08-15 13:32:30

0

警衛rspec的',:版本=> 2:all_after_pass =>假做

,並添加代碼

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", 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
        "spec/requests/#{m[1].singularize}_pages_spec.rb")] 
end 
watch(%r{^app/views/(.+)/}) do |m| 
    (m[1][/_pages/] ? "spec/requests/#{m[1]}_spec.rb" : 
        "spec/requests/#{m[1].singularize}_pages_spec.rb") 
end 
0

下面是它應該如何看,如果你正在做的是最新版本的這教程

需要 'active_support /偏轉'

警衛rspec的',all_after_pass:假的,CLI: '--drb' 做
手錶( '的config/routes.rb文件')#自定義Rails的教程規格
手錶(%R {^應用/控制器/(+)_(控制器).RB $})做| M | [ 「規格/路由/#{M [1]} _ routing_spec.rb」, 「規格/#{M [2]} S /#{M [1]} _#{M [2]} _ spec.rb 」, 「規格/接受/#{M [1]} _ spec.rb」, (M [1] [/ _頁/]? 「規格/請求/#{M [1]} _ spec.rb」: 「spec/requests /#{m [1] .singularize} _pages_spec.rb」)] end
watch(%r {^ app/views /(.+)/})do | m | 「spec/requests /#{m [1]} _ spec.rb」: 「spec/requests /#{m [1] .singularize} _pages_spec.rb」)end
watch(%r {^ app/controllers/sessions_controller.rb $})do | m | 「spec/requests/authentication_pages_spec。RB」端

後衛 '叉勺',:cucumber_env => { 'RAILS_ENV'=> '測試'},:rspec_env => { 'RAILS_ENV'=> '測試'}不要觀看( ('config/environment.rb')watch('config/environments/test.rb') watch(%r {^ config/initializers /.+。rb $})watch('config/'的Gemfile')
手錶( 'Gemfile.lock的')觀看( '規格/ spec_helper.rb'){:rspec的}
手錶( '試驗/ test_helper.rb中'){:test_unit}
手錶(%R {features/support /}){:cucumber}
watch(%r {^ spec/support /.+。rb $} )end

guard'rspec'do watch(%r {^ spec /.+_ spec.rb $})
watch(%r {^ lib /(.+)。rb $}){| m |線 「spec/LIB /#{M [1]} _ spec.rb」}
手錶( '規格/ spec_helper.rb'){ 「規格」}

#導軌例如觀看(%R {^應用程序/( 。+)。rb $})
{| m | 「spec /#{m [1]} _ spec.rb」}手錶(%r {^ app /(。*)(.erb | .haml)$})
{| m | (控制器).rb $}){} {spec [#] {m [1]}#{m [2]} spec.rb「}
watch(%r {^ app/controllers /(.+)
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 ( '配置/ routes.rb中'){線 「spec /路由」} 手錶( '應用程序/控制器/ application_controller.rb'){ 「規格/控制器」}

#豚設有規格
手錶(% r {^ app/views /(。+)/.*。(erb | haml)$}){| m | 「規格/特徵/#{M [1]} _ spec.rb」}

#蕪菁特徵和步驟
手錶(%R {^規格/接受/(.+)。特徵$})
觀看(%r {^ spec/acceptance/steps /(.+)_ steps.rb $}){| m | Dir [File.join(「** /#{m [1]}。feature」)] [0] || 'spec/acceptance'} end