与Rcov的Rspec2问题

时间:2010-12-28 19:10:39

标签: ruby rspec2 rcov

在我的Rakefile中,我有一个像这样定义的任务:

namespace :test do
  desc "Run all specs."
  RSpec::Core::RakeTask.new(:spec) do |t|
    t.pattern = 'spec/**/*_spec.rb'
    t.verbose = false
  end

  RSpec::Core::RakeTask.new(:coverage) do |t|
    t.rcov = true
    t.rcov_opts =  %q[--exclude "spec"]
    t.verbose = true
  end
end

运行test:coverage时,我明白了:

./spec/foo_spec.rb:3: undefined method `describe' for main:Object (NoMethodError)
    from /Library/Ruby/Gems/1.8/gems/rcov-0.9.9/bin/rcov:516:in `load'
    from /Library/Ruby/Gems/1.8/gems/rcov-0.9.9/bin/rcov:516
    from /usr/bin/rcov:19:in `load'
    from /usr/bin/rcov:19
rake aborted!
ruby -S rcov -Ispec:lib --exclude "spec" "./spec/foo_spec.rb" failed

在我的宝石列表下面:

diff-lcs (1.1.2)
rake (0.8.7)
rcov (0.9.9)
rspec (2.3.0)
rspec-core (2.3.1)
rspec-expectations (2.3.0)
rspec-mocks (2.3.0)

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

解决方案来自David Chelimsky:
http://rubyforge.org/pipermail/rspec-users/2010-December/019077.html

require "rspec"

干杯。