난 대형 레일 테스트 스위트를 가지고 있고, 한 번만 Timecop을 사용하고 있습니다. 내가 가진 전체 제품군을 실행할 때Timecop.freeze가 full spec suite를 실행할 때만 작동하는 이유는 무엇입니까?
it "should not include votes from today" do
assert_equal 8, @answer.todays_score
end
it "should include today's votes tomorrow" do
Timecop.travel(Date.today + 1) do
assert_equal 10, @answer.yesterdays_score
end
end
이 사양은 통과 :
rake
또는
rake spec
그러나 나는 작은 세트를 실행하려고하면 Timecop.freeze가 작동하지 않거나 개별 사양. 즉, 다음 두 가지 모두 실패합니다.
rspec ./spec/models/answers_spec.rb
rake spec:models
아이디어가 있으십니까? 루비/rspec/레이크와 아마도 bundler 사이의 상호 작용에 대해 뭔가 빠져 있습니까? (레코드의 경우 - 위의 모든 것을 실행하면 '번들 실행'이 선행 될 때와 동일한 결과를 얻습니다.)
여기에 내 Gemfile과 spec.helper가 포함되어 있습니다.
Gemfile :
gem 'rails', '3.2.8'
gem 'omniauth'
gem 'omniauth-twitter'
gem 'omniauth-facebook'
gem 'haml-rails'
gem 'sass'
gem 'chronic'
gem 'chronic_duration'
gem 'heroku'
gem 'pg', '0.13.1'
gem 'jquery-rails'
gem 'jquery_mobile_rails', "1.1.0"
gem "bcrypt-ruby", :require => "bcrypt"
gem 'rails_autolink'
group :assets do
gem 'sass-rails'
gem 'coffee-rails'
gem 'uglifier'
end
group :development, :test do
gem 'timecop'
gem 'ruby-prof'
gem 'factory_girl_rails'
gem 'rspec-rails'
gem 'capybara'
gem 'mocha'
end
spec_helper.rb :
require 'rubygems'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'rspec/autorun'
require 'mocha'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :mocha
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.include(MailerMacros)
config.before(:each) { reset_email }
end