2010-09-01 18 views
6

Uaktualniłem moją aplikację, używając config.gem do Gemfile z pakerem i zauważyłem, że moje testy jednostkowe przestały działać. To trochę dziwne i nie jestem do końca pewien, gdzie zacząć szukać.Prowizja nie uruchamia testów jednostkowych

Po uruchomieniu rake test:units --trace widzę, że moje środowisko jest instalowane i zawiera listę plików, które zamierza wykonać, ale potem po prostu wraca.

Robi to samo, jeśli próbuję uruchomić jeden pojedynczy plik przy użyciu czegoś takiego jak: rake -I"lib:test" test/unit/foo.rb lub przy użyciu autotest.

To wszystko bardzo dziwne. To tak, jakby pliki były ładowane, ale rzeczywiste testy jednostkowe nie są uruchamiane.

Używam shoulda i fast_context i pomyślałem to może być problem, ale jeśli to badanej jednostki przy użyciu standardowego def test_ składni jeszcze nie się uruchomić, więc nie sądzę, że to te.

Wszelkie wskazówki i wskazówki byłyby mile widziane. Czuję, że piszę ślepo, póki nie sprawię, że znów będą działać!


Tak tu gdzie jestem teraz:

Moje powody korzystania Bundler dotyczą instalowania współzależności na Heroku i dlatego chciałem użyć gem pochodzą z repo git na github. Najdłużej i najkrócej to, że usunąłem preinitializer dla bundler i wróciłem do korzystania z config.gem. Aby obejść fakt, że nie mogę użyć repozytorium github przy użyciu config.gem, wysłałem własną kopię do rubygems. Czy to był właściwy ruch?


Oto 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 

Nie wiem, jak plik .gems byłoby przydatne, ponieważ jest to jedyna rzecz Heroku i będę musiał polować przez git dla niego, ale tutaj jest mój 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

chcesz pisać wiersze preinitializer i Gemfile (i stare .gems pliku) – marshally

+0

prawdopodobnie nie dobry pomysł wypychania osobnych/osobistych wersji na rubygemach ... to prowadzi do starych, nieużywanych wersji klejnotów, których nikt nie utrzymuje ani nie używa. po prostu pobierz je lokalnie lub zainstaluj je w swoim systemie, a nie w zależności od hostingu klejnotów. tylko moje myśli – Lukas

+0

Hej tam, zauważyłem, że używasz dziedziczone_resources i tory 2.3 z bundler.Mam problemy z doprowadzeniem ich do wspólnej pracy. Czy kiedykolwiek miałeś z tym problemy? – taelor

Odpowiedz

1

Got to samo problem.Just wyjąć gem „hydra” dostanie badanej jednostki z powrotem do normalnego

0

Czy masz to na końcu pliku/boot.rb config:

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 

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

+0

lepsza opcja? upgrade do szyn 3 ... :) – Lukas

0

Niedawno miałem problemy z uruchomieniem specyfikacje dla projektu. Powodem był brak linii z config/application.rb. Obecnie ta linia pojawia się domyślnie podczas tworzenia nowego projektu rails 3, ale jeśli twój projekt został zainicjowany jakiś czas temu, może go brakować.

# 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) 
Powiązane problemy