我正在尝试直接从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现在正试图运行测试,但遇到问题......有什么想法吗?
感谢您的帮助。
答案 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)
可能会将名称空间事物更改为字符串...