Rails 3 + FactoryGirl: NameError: nicht initialisierte Konstante Factory

8
%Vor%

Mein Gemfile:

%Vor%

Auch wenn es scheint, dass ich alles so habe, wie es sollte, bekomme ich diesen Fehler immer wieder. Ich habe auch factories.rb erstellt.

Danke

    
donald 08.04.2011, 13:07
quelle

4 Antworten

10

Ich nehme an, Sie versuchen in der Entwicklungsumgebung Konsole. Aber Sie fügen das Factory-Juwel nur in der Testumgebung hinzu.

Wenn du Zugriff auf Factory_girl in der Entwicklung haben willst, benutze es in deiner Gemfile:

%Vor%

Oder wenn Sie Ihre Factory testen möchten, starten Sie Ihre Konsole in der Testumgebung:

%Vor%     
shingara 08.04.2011, 13:14
quelle
2

Wir hatten ein ähnliches Problem an unserem Ende, Rake-Spec schien zufällig mit dem Fehler nicht initialisiertes konstantes FactoryGirl zu versagen. Der Fehler war zufällig - & gt; kommen und gehen. Wir gingen ein halbes Dutzend Git-Commits zurück, um zu versuchen, es zu lösen. Am Ende war es ein dummer Fehler.

Das grundlegende Problem ist, dass RAILS_ENV auf Entwicklung gesetzt ist. Es muss auf test eingestellt werden, wenn Sie die Rake-Spezifikation ausführen.

Adresse von:

  1. Stellen Sie sicher, dass wir Rake-Spezifikationen in der RAILS_ENV test -Umgebung ausführen und ordnungsgemäß exportiert / bezogen werden. Um unsere Umgebung nicht zu verwirren, haben wir die Variable zsh $ RPROMT env so geändert, dass sie das aktuelle env anzeigt.

    export RPROMPT="[% {$ fg_no_bold [gelb]%} $ RAILS_ENV% {$ reset_color%}]"

  2. Erfordern FactoryGirl in der Spec-Ruby-Dateien gab eine viel bessere Fehlermeldung. Wenigstens würde rspec laufen oder einfach so ausfallen, wenn die Umgebung falsch war. Wir haben auch unsere gemfile aktualisiert, um sicherzustellen, dass factory_girl_rails und factory_girl sowohl für die Entwicklung als auch für das Testen geladen wurden.

  3. Jetzt führen wir einfach rpsec mit dem Edelsteinwächter in einem dedizierten Terminal mit dem richtigen RAILS_ENV-Set aus.

Es ist einer dieser Gotchas.

Wir betreiben Ruby 1.9.3, Rails 3.2.9, Rspec 2.12, factory_girl 4.1.

    
Geoffrey Shmigelsky 20.12.2012 22:08
quelle
2

Ich bin auch auf dieses Thema gestoßen, als ich das Hartl-Tutorial gemacht habe.

Wenn Sie " Spork " verwenden, um Ihre Tests zu beschleunigen, und sie beim Hinzufügen des FactoryGirl-Codes im Hintergrund ausgeführt werden, müssen Sie sie anhalten und neu starten.

    
Gregism 11.06.2013 21:23
quelle
0

Sie sollten auch Factorydefine auf FactoryGirl.define ändern, wie in diesem Beispiel

%Vor%

aus der Dokumentation von factory_girl

    
Paulo Fidalgo 23.01.2013 15:20
quelle

Tags und Links