我有以下的RSpec(1.3.0)的任务在我Rakefile
定义:为什么我的RSpec规格运行两次?
require 'spec/rake/spectask'
Spec::Rake::SpecTask.new(:spec) do |spec|
spec.libs << 'lib' << 'spec'
spec.spec_files = FileList['spec/**/*_spec.rb']
end
我在spec/spec_helper.rb
如下:
require 'rubygems'
require 'spec'
require 'spec/autorun'
require 'rack/test'
require 'webmock/rspec'
include Rack::Test::Methods
include WebMock
require 'omniauth/core'
我有一个规范的spec/foo/foo_spec.rb
声明:
require File.dirname(__FILE__) + '/../spec_helper'
describe Foo do
describe '#bar' do
it 'be bar-like' do
Foo.new.bar.should == 'bar'
end
end
end
当我运行rake spec
时,单个示例运行两次。我可以通过让示例失败来检查它,给我两个红色的“F”。
我认为的一件事是,的SpecTask
的libs
是造成它们双重定义,但删除似乎没有任何效果。
这不是一个Rails应用程序,所以这不是问题。如果我的'$ LOAD_PATH'已经设置好了,我只能执行'require'spec_helper'',但如果我想运行一个spec,'$ LOAD_PATH'直到'spec_helper.rb'内部才会被设置。 – 2010-06-13 17:35:50