2010-05-13 49 views
2

我想直接從ruby代碼運行RSpec測試。更具體地說,我正在運行一些mysql腳本,加載rails測試環境,然後我想運行我的rspec測試(這是我遇到的麻煩)......我試圖用rake任務。這是我到目前爲止的代碼:從紅寶石代碼運行RSpec文件

require "spec/autorun" 
require"spec" 
require "spec/rake/spectask" 
RAILS_ENV = 'test' 

namespace :run_all_tests do 
    desc "Run all of your tests" 

    puts "Reseting test database..." 
    system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\BrianSite_test_CreateScript.sql" 
    puts "Filling database tables with test data..." 
    system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\Fill_Test_Tables.sql" 

    puts "Starting rails test environment..." 
    task :run => :environment do 
    puts "RAILS_ENV is #{RAILS_ENV}" 
    # Run rspec test files here... 
    require "spec/models/blog_spec.rb" 
    end 
end 

我認爲需要「規格/型號/ blog_spec.rb」會做,但測試沒有運行。任何人都知道我要去哪裏錯了?

更新:我已經添加在該文件的頂部的規定「規範/自動運行」命令,現在我遇到了這個錯誤,當我做了耙RUN_ALL_TESTS:運行:

C:/紅寶石/ lib/ruby​​/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb:283:在fi les_to_load': File or directory not found: run_all_tests:run (RuntimeError) from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options. rb:275:in每個' from C:/Ruby/lib/ruby/gems/1.8/gems/rspec -1.3.0/lib目錄/規格/跑步/選項。 RB:275:在files_to_load' from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options. rb:133:in run_examples' 從C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner.rb:61:在 run' from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner.rb:45:in 自動運行」 選自C :/ Ruby/bin/rake:19

它在達到require「spec/models/blog_spec.rb」行時發生此錯誤。這個文件確實存在,因爲當我嘗試更改require語句時,我只是收到文件未找到錯誤。看起來rspec正在嘗試運行測試,但遇到問題......任何想法?

感謝您的任何幫助。

回答

1

嘗試將require "spec/autorun添加到文件頂部。

你不需要做雖然這樣的說法,因爲有建於Rake任務(這是什麼spec/rake/spectask被包括)做你在做什麼:http://rspec.info/documentation/tools/rake.html

+0

我嘗試添加了要求「規範/自動運行」,但現在我 出錯。我更新了我收到的錯誤的問題。謝謝您的幫助。 – 2010-05-13 18:50:20

-1

可能更改命名空間的事情一個字符串...

0

每當我使用RSpec的庫執行RB劇本,我的文件名前加上「rspec的」

rspec mycode.rb