ruby / rake / rspec无法加载spec_helper(不是rails)

时间:2015-09-18 05:11:16

标签: ruby rspec

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

require_relative 'spec_helper'

而不是require ...中的numbersTest_spec.rb将解决此问题。

原因是numbersTest_spec.rb无法查找所需文件的位置。 require期望在全局需求路径上提供参数。为了解决这个问题,可以通过例如:

来更新$:(全局需求路径)
$:.unshift "#{`pwd`}".chomp

但在你的特殊情况下,相对要求是银弹。实际上,bundler被发明为忘记加载管理恐怖的路径。