3

我有一个看起来像这样的 rspec 测试:

require 'require_all'
require_rel '../spec_helper'

describe "HtmlEntities" do
  ...some tests
end

我从一个看起来像的 rake 任务中调用它

require 'rspec/core/rake_task'
Rspec::Core::RakeTask.new(:spec) do |spec|
#  spec.libs << 'lib' << 'spec'
#  spec.spec_files = FileList['spec/**/*_spec.rb']
end

但我得到了例外:

./spec/fixers/entities_spec.rb:1:in `require': no such file to load -- require_all (LoadError)
    from ./spec/fixers/entities_spec.rb:1

我肯定安装了require_allgem(我可以在其中看到它gem list并要求它irb)。有谁知道为什么我不能在这里要求它?

4

1 回答 1

3

添加require 'rubygems'到包含 rake 任务的文件顶部:

require 'rubygems'
require 'rspec/core/rake_task'
Rspec::Core::RakeTask.new(:spec) do |spec|
spec.libs << 'lib' << 'spec'
spec.spec_files = FileList['spec/**/*_spec.rb']
end

这将告诉 ruby​​ 包含您的 gem,以便您可以运行它们

于 2010-06-25T18:36:20.653 回答