Dziwne zachowanie config.gem w połączeniu z rspec-rails w Rails 2.2

16 stycznia 2009, 17:23:13

Poziom: 0 | Kategoria: Komputerowo-internetowo, Ruby, Ruby on Rails, Techblog.

Pracując ostatnio nad projektem zauważyłem dziwne rzeczy dziejące się w aplikacji. Po pierwsze w trybie deweloperskim po jakimkolwiek błędzie nie wyświetlał się stack trace. Jedyne, co się wyświetlało, to error code 500.

Już sam ten fakt był dla mnie dość uciążliwy, chociaż w tym przypadku zawsze można było odwołać się do logów aplikacji. Dużo gorszą rzeczą było nadpisanie przez coś wartości stałej RAILS_ENV i ustawienie jej na 'test'. Co ciekawe, wartość ENV['RAILS_ENV'] nadal wskazywała na poprawne środowisko.

Kiedy po zainstalowaniu RPM aplikacja nie chciała z nim współpracować (oczywiście działo się tak przez źle wskazujące RAILS_ENV) trzeba było znaleźć winnego. Po nitce do kłębka znalazłem wpis dotyczący znikających stack trace'ów. Okazało się, że wycięcie z pliku config/environment.rb linijki:

config.gem 'rspec-rails', :lib => 'spec/rails'

rozwiązało oba problemy!

Winowajcą jest linijka

silence_warnings { RAILS_ENV = "test" }

w pliku lib/spec/rails.rb gema rspec-rails.

Powyższy problem zdaje się nie występować w przypadku korzystania z rspeca w formie pluginu.

Tagi:

Komentarze do notki “Dziwne zachowanie config.gem w połączeniu z rspec-rails w Rails 2.2”:

  1. Radarek

    Takie bugi w libach potrafią zniechęcić by je dalej używać... Zgłosiłem ten błąd developerom rspeca?

  2. GhandaL

    Zglosiłem, czy zgłosiłeś? :) Ja nie zgłaszałem, bo ticket już jest – http://rspec.lighthouseapp.com/projects/5645/tickets/584-adding-rspec-rails-forces-default-environment-to-test

  3. GhandaL

    No i błąd został już naprawiony

Zostaw komentarz (Textile włączony):