Ich verwende Rspec zum Testen. Es verwendet jedoch meine Entwicklungsdatenbank anstelle meiner Test-DB. Wie kann das passieren?
Ich verwende einfach rspec, um meine Tests auszuführen: don:my_project_root $ rspec
Es scheint so, als ob die üblichen Fehler von anderen Fragen nur für Rails 3 relevant sind oder ziemlich veraltet sind (Befehle verwenden, die Sie nicht mehr mit rspec verwenden).
Unten ist mein spec_helper.rb.
%Vor%datenbank.yml
%Vor%Ich weiß nicht, ob jemand von euch immer noch das Problem hat, aber für mich bewegt
%Vor% von rails_helper.rb
bis zum Anfang von spec_helper.rb
hat es behoben. spec_helper.rb
macht ein paar Dinge vor dem Laden von rails_helper.rb
, und etwas berührt wahrscheinlich die Datenbank während dieser Zeit.
Ich hatte ein ähnliches Problem und obwohl ich ENV["RAILS_ENV"] = 'test'
durch Rails.env = 'test'
in spec_helper.rb
ersetzt habe, muss ich RAILS_ENV=test
nur manuell angeben, wenn ich den Befehl ausführe, damit es funktioniert. Schauen Sie hier, aber probieren Sie zuerst die Rails.env-Sache:
Bezieht sich auf Rails 4.2.1, welches die letzte stabile Version seit diesem Post ist
Ich versuche immer noch, das zu lösen. Als "stop-gap" können Sie jedoch Ihre rspec-Befehle mit einer Umgebungsdeklaration "RAILS_ENV = test" voranstellen.
Zum Beispiel: um einen Test auszuführen, würden Sie schreiben:
RAILS_ENV=test rspec path/to/test_spec.rb
Sie könnten Alias rspec als "RAILS_ENV = test rspec", aber das würde nur das Problem verbergen und als solches habe ich das persönlich noch nicht getan ... noch nicht.
Ich werde sicherstellen, dass dieser Thread mit einer Lösung aktualisiert wird, sobald ich eine finde, da keine der obigen Möglichkeiten mir überhaupt geholfen hat.
Tags und Links ruby-on-rails rspec ruby-on-rails-4