6


1

単体テストを実行していないレーキ

私はアプリを config.gem`からbundlerを使用した Gemfile`にアップグレードしましたが、ユニットテストの実行が停止していることに気付きました。 それは少し奇妙で、どこから探し始めればいいのかよくわかりません。

`rake test:units --trace`を実行すると、環境がセットアップされていることがわかり、実行する予定のファイルが一覧表示されますが、その後は戻ります。

rake -I" lib:test "test / unit / foo.rb`または autotest`を使用して、1つのファイルを実行しようとしても同じことを行います。

それはすべて非常に奇妙です。 ファイルはロードされているが、実際の単体テストは実行されていないかのようです。

「shoulda」と「fast_context」を使用していますが、これらが問題になる可能性があると考えましたが、標準の「def test_」構文を使用した単体テストを含めると実行されないので、それらだとは思いません。

どんなヒントやポインタも大歓迎です。 私は彼らが再び働くようになるまで私は盲目にコーディングしているように感じます!

'' '' '

だから私は今ここにいます:

bundlerを使用する理由は、herokuに依存関係をインストールするためと、githubのgitリポジトリからソースされたgemを使用したかったためです。 長いことと短いことは、Bundlerの「preinitializer」を削除し、「config.gem」の使用に戻ったことです。 `config.gem`を使用してgithubリポジトリを使用できないという事実を回避するために、自分のコピーを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
gemsファイルがどのように役立つかわかりません。これはheroku専用のものであり、gitを使ってハントする必要があるからです。
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

3 Answer


1


同じ問題が発生しました。宝石「ヒドラ」を削除するだけで、ユニットテストが正常に戻ります


0


config / boot.rbファイルの最後にこれがありますか?

class Rails::Boot
  def run
    load_initializer

    Rails::Initializer.class_eval do
      def load_gems
        @bundler_loaded ||= Bundler.require :default, Rails.env
      end
    end

    Rails::Initializer.run(:set_load_path)
  end
end

(http://gembundler.com/rails23.htmlから)


0


最近、プロジェクトの仕様を実行するのに問題がありました。 その理由は、config / application.rbから行が抜けていたからです。 最近では、新しいrails 3プロジェクトを作成すると、その行がデフォルトで表示されますが、プロジェクトがしばらく前に初期化されている場合、行が失われる可能性があります。

# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)