3 Stimmen

rspec-Test mit regulärer Datenbank, nicht mit Testdatenbank

Ich verwende Rspec, webrat, Selenium rc für Tests.

Ich versuche, Integrationstest mit Selenium und rspec zu tun.

Ich habe gerade in meiner Entwicklungsdatenbank nachgesehen und festgestellt, dass meine Integrationstests meine Entwicklungsdatenbank und nicht meine Testdatenbank verwenden.

Wie konfiguriere ich Rails und rspec und Selenium, um meine Testdatenbank zu verwenden.

Alle meine anderen Tests scheinen meine Testdatenbank zu verwenden.

16voto

chrispanda Punkte 3194

Haben Sie eine Zeile wie

  ENV["RAILS_ENV"] ||= 'test'

in Ihrer spec_helper.rb? Erzwingt es die Verwendung der Test-DB, wenn Sie sie mit

ENV["RAILS_ENV"] = 'test'

Und könnte dies die Ursache für Ihr gestriges Problem sein - die E-Mail-Validierung?

0voto

benmac Punkte 103

Ich konfrontiert das gleiche Problem (rspec Tests laufen gegen Entwicklung statt Testumgebung) während der Portierung und Rails 2 app zu Rails 3. Ändern Sie die Zeile

ENV["Rails.env"] ||= 'test'

a

ENV["RAILS_ENV"] ||= 'test'

in spec_helper.rb hat mein Problem behoben.

Ich weiß, dass RAILS_ENV zugunsten von Rails.env veraltet ist und vermute, dass etwas Schlechtes in den Port geschleppt wurde, das mich zwingt, diese Änderung vorzunehmen.

Es gibt auch eine gute Diskussion über RAILS_ENV und Rails.env hier, die einige weitere Einblicke bieten kann:

Korrekter Ruby on Rails 3-Ersatz für ENV["RAILS_ENV"] ||= 'production'?

0voto

konyak Punkte 9408

Laut der rspec-rails gem-Dokumentation sollte rspec-rails gem in die Entwicklungs- und Testgruppen des Gemfiles eingefügt werden. Das liegt daran, dass die Test-Rake-Aufgabe zuerst die Entwicklungsumgebung lädt, bevor sie zur Testumgebung wechselt.

group :development, :test do
  gem 'rspec-rails'
end

Referenzen: https://github.com/rails/rails/issues/7175 , https://github.com/rails/rails/issues/8591 -- rspec lädt Entwicklungsumgebung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X