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%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:
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%}]"
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.
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.
Sie sollten auch Factorydefine auf FactoryGirl.define ändern, wie in diesem Beispiel
%Vor%aus der Dokumentation von factory_girl
Tags und Links ruby-on-rails-3 factory-bot