我已經使用config.gem
將我的應用程序升級到帶有捆綁器的Gemfile
,並且注意到我的單元測試已停止運行。這有點奇怪,我不完全確定從哪裏開始尋找。耙不運行單元測試
當我運行rake test:units --trace
我可以看到我的環境正在設置,它列出了它打算執行的文件,但它只是返回。
如果我嘗試使用類似如下的方法運行一個單獨的文件,它會執行同樣的操作:rake -I"lib:test" test/unit/foo.rb
或使用autotest
。
這一切都很奇怪。就好像文件正在加載,但實際的單元測試沒有運行。
我使用shoulda
和fast_context
,我想這可能是問題,但如果我包括使用標準def test_
語法,但它仍然沒有得到執行這樣一個單元測試,我不認爲這是這些。
任何提示或指針將不勝感激。我覺得我編碼盲目,直到我能讓他們再次工作!
因此,這裏是我現在所在:
我的理由使用捆綁是安裝在Heroku上的依賴性和,因爲我想用從GitHub上一個git回購來源的瑰寶。其中最重要的一點是我已經刪除了捆綁軟件的preinitializer
,並重新使用config.gem
。爲了解決這個事實,我不能使用使用config.gem
的github repo,我推出了自己的副本到rubygems。這是正確的舉措嗎?
這裏的preinitializer.rb
begin
require "rubygems"
require "bundler"
rescue LoadError
raise "Could not load the bundler gem. Install it with `gem install bundler`."
end
if Gem::Version.new(Bundler::VERSION) <= Gem::Version.new("0.9.24")
raise RuntimeError, "Your bundler version is too old for Rails 2.3." +
"Run `gem install bundler` to upgrade."
end
begin
# Set up load paths for all bundled gems
ENV["BUNDLE_GEMFILE"] = File.expand_path("../../Gemfile", __FILE__)
Bundler.setup
rescue Bundler::GemNotFound
raise RuntimeError, "Bundler couldn't find some gems." +
"Did you run `bundle install`?"
end
我不知道如何,因爲它是唯一的Heroku的事情,我不得不通過GIT中去尋找它的.gems文件將是有益的,但這是我的gemfile。
source :gemcutter
gem 'rails', '2.3.9'
gem 'pg'
gem 'minitest'
gem 'RedCloth'
gem 'erubis'
#gem 'memcached'
gem 'daemons'
gem 'resque'
gem 'inherited_resources', '1.0.6'
gem 'clearance', '0.8.8'
gem 'acl9'
gem 'sprockets'
gem 'aws-s3'
gem 'paperclip', '2.3.1.1'
gem 'rmagick', '2.12.2'
gem 'jonnii-cheddargetter', '0.1.3'
gem 'attribute_normalizer'
gem 'formtastic', '1.1.0.beta'
gem 'will_paginate', '2.3.14'
gem 'hoptoad_notifier'
gem 'mixpanel_client'
gem 'sunspot'
gem 'websolr-sunspot_rails'
gem 'geokit'
gem 'ri_cal'
gem 'jonnii-yelp'
group :development, :test do
gem 'test-spec'
gem 'shoulda'
gem 'redgreen'
gem 'factory_girl'
gem 'populator'
gem 'faker'
gem 'ZenTest'
gem 'autotest-rails'
gem 'webrat'
gem 'cucumber'
gem 'cucumber-rails'
gem 'database_cleaner'
gem 'parallel'
gem 'hydra'
gem 'heroku'
gem 'taps'
gem 'ruby-prof'
gem 'treetop'
gem 'rspec'
gem 'rspec-rails'
end
將您發佈preinitializer線和Gemfile中(老.gems文件) – marshally 2010-09-10 04:35:46
可能不是一個好主意推動rubygems單獨/個人版本......這往往會導致舊的,未使用的寶石版本,沒有人維護或使用。只需將它們下載到本地或將它們安裝在您的系統上,而不是依賴於Gem託管。只是我的想法 – Lukas 2010-10-19 14:33:25
嘿,在那裏,我注意到你正在使用bundler使用inherited_resources和rails 2.3。我在讓他們一起工作時遇到問題。你有沒有遇到過任何問題? – taelor 2011-10-10 17:57:28