我正在尝试使用Rake和Rspec为ruby项目设置测试环境。
当我尝试在控制台中运行“rake”时,我收到此错误:
C:/Ruby21-x64/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- spec_helper (LoadError)
from C:/Ruby21-x64/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from spec/numbersTest_spec.rb:1:in `<main>'
rake aborted!
我的filetree看起来像这样:
project
-spec
--numbersTest_spec.rb
--spec_helper.rb
-rakefile
Rake文件
begin
require 'rspec/core/rake_task'
task default: %w[test]
task :test do
ruby "spec/numbersTest_spec.rb"
end
end
numbersTest_spec.rb
require "spec_helper"
describe "Imperative" do
perfectImperative(5).should == false
end
答案 0 :(得分:1)
require_relative 'spec_helper'
而不是require ...
中的numbersTest_spec.rb
将解决此问题。
原因是numbersTest_spec.rb
无法查找所需文件的位置。 require
期望在全局需求路径上提供参数。为了解决这个问题,可以通过例如:
$:
(全局需求路径)
$:.unshift "#{`pwd`}".chomp
但在你的特殊情况下,相对要求是银弹。实际上,bundler被发明为忘记加载管理恐怖的路径。