2010-09-01 20 views
6

Ich habe meine App von config.gem zu einem Gemfile mit Bundler aktualisiert und habe festgestellt, dass meine Komponententests jetzt nicht mehr ausgeführt werden. Es ist ein bisschen komisch und ich bin mir nicht ganz sicher, wo ich anfangen soll.Rake läuft nicht Unit Tests

Wenn ich rake test:units --trace ausführen, kann ich sehen, meine Umgebung wird eingerichtet und es listet die Dateien, die es ausgeführt werden soll, aber dann wird nur zurückgegeben.

Es macht das gleiche, wenn ich versuche, eine einzelne Datei mit etwas wie: rake -I"lib:test" test/unit/foo.rb oder mit autotest zu starten.

Es ist alles sehr seltsam. Es ist, als würden die Dateien geladen, aber die eigentlichen Komponententests werden nicht ausgeführt.

Ich verwende shoulda und fast_context und ich dachte, dass diese das Problem sein könnte, aber wenn ich einen Komponententest unter Verwendung des Standard def test_ Syntax enthalten es läuft immer noch nicht so die, die ich glaube nicht, es ist.

Alle Hinweise oder Hinweise würden sehr geschätzt werden. Ich fühle mich wie ich blind codiere, bis ich sie wieder arbeiten lassen kann!


Also hier ist, wo ich jetzt bin:

Meine Gründe für Bündler verwenden, sind für Abhängigkeiten von Heroku Installation und weil ich wollte ein Juwel von einem git Repo auf Github sourced verwenden. Das lange und kurze davon ist, dass ich die preinitializer für Bundler entfernt habe und wieder config.gem verwendet habe. Um die Tatsache zu umgehen, dass ich kein Github Repo mit config.gem verwenden kann, habe ich meine eigene Kopie in Rubygems geschoben. War das der richtige Schritt?


Hier ist der 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 

Ich weiß nicht, wie die .gems Datei nützlich wäre, weil es ein Heroku einzige Sache ist und ich hätte es durch git zu jagen, aber hier ist mein 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 
+0

würden Sie schreiben die preinitializer Linien und die Gemfile (und alte .gems Datei) – marshally

+0

wahrscheinlich nicht bekommen gute Idee, separate/persönliche Versionen auf Rubygems zu schieben ... dies führt zu alten, unbenutzten Versionen von Edelsteinen, die niemand pflegt oder benutzt. Laden Sie sie einfach lokal herunter oder installieren Sie sie auf Ihrem System und nicht nur auf das Gem-Hosting. nur meine Gedanken – Lukas

+0

Hey, ich habe bemerkt, dass Sie geerbte Ressourcen und Schienen 2.3 mit Bundler verwenden.Ich habe Probleme, sie zur Zusammenarbeit zu bringen. Sind Sie jemals auf irgendwelche Probleme gestoßen? – taelor

Antwort

1

erhielt die gleiche problem.Just den Edelstein ‚Hydra‘ entfernen die Unit-Test wieder normal

0

Haben Sie diese am Ende Ihrer config/boot.rb Datei:

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 

(von http://gembundler.com/rails23.html)

+0

bessere Option? Upgrade auf Schienen 3 ... :) – Lukas

0

I Spezifikationen für ein Projekt vor kurzem hatte Probleme läuft. Der Grund war, dass ich eine Zeile von config/application.rb verpasste. Heutzutage taucht diese Zeile standardmäßig auf, wenn Sie ein neues Projekt von rails 3 erstellen, aber wenn Ihr Projekt vor einiger Zeit initialisiert wurde, könnte es fehlen.

# 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)