从ruby代码运行RSpec文件

时间:2010-05-13 13:38:43

标签: ruby rspec

我正在尝试直接从ruby代码运行RSpec测试。更具体地说,我正在运行一些mysql脚本,加载rails测试环境然后我想运行我的rspec测试(这是我遇到的麻烦)...我正在尝试使用rake任务执行此操作。到目前为止,这是我的代码:

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

我认为要求“spec / models / blog_spec.rb”会这样做,但测试没有运行。谁知道我哪里出错?

更新:我已在文件顶部添加了require“spec / autorun”命令,现在我在执行rake run_all_tests时遇到此错误:运行:

C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb:283:in 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 each'         来自C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options。 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:in  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现在正试图运行测试,但遇到问题......有什么想法吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

尝试将require "spec/autorun添加到文件顶部。

你不需要这样做,因为有内置的Rake任务(这是spec/rake/spectask所包含的)来做你正在做的事情:http://rspec.info/documentation/tools/rake.html

答案 1 :(得分:0)

每当我使用rspec库执行rb脚本时,我都会在文件名前添加“rspec”

rspec mycode.rb

答案 2 :(得分:-1)

可能会将名称空间事物更改为字符串...