Rspec benutzt meine Entwicklungsdatenbank

8

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%     
Don P 24.03.2014, 05:30
quelle

4 Antworten

29

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.

    
Nicolas Mattia 22.01.2015, 10:12
quelle
2

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:

Bündel exec Rake spec und benutzerdefinierte Rake-Aufgaben

    
tirdadc 24.03.2014 11:38
quelle
1

Ich hatte zufällig $DATABASE_URL in meiner .bashrc -Datei definiert, um direkt auf meine Entwicklungsdatenbank zu zeigen. Nahm mich ein paar Stunden um das zu finden.

    
HMCFletch 27.06.2017 16:23
quelle
1

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.

    
Jonjoe 18.10.2015 12:39
quelle