Nach einigen Recherchen habe ich festgestellt, dass es dafür keinen Weg gibt. Die Test-Rake-Aufgaben werden immer die Datenbank löschen, selbst wenn die Option TEST=
wie Bohdan schlägt.
Mit der Option --trace
kann dies nachgewiesen werden. Hier ist die Ausgabe:
$ rake test:units TEST=test/unit/post_test.rb --trace
(in /Users/johnnyicon/Development/ror/test-app)
** Invoke test:units (first_time)
** Invoke test:prepare (first_time)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:load
** Invoke db:schema:load (first_time)
** Invoke environment
** Execute db:schema:load
** Execute test:prepare
** Execute test:units
durch Lesen der Ruby on Rails Guides for Testing, beschreibt sie, was einige dieser Rake Aufgaben bedeuten. Besonders zu beachten ist die db:test:load
Aufgabe, die Sie in der 7. Zeile von der Unterseite des Ausgangs als ** Execute db:test:load
sehen. Die Führer sagen, die folgenden zu dieser Aufgabe:
die Testdatenbank neu erstellen aus dem aktuellen schema.rb
Also selbst wenn ich das Gerät testet nacheinander auszuführen waren wie Bohdan schlägt vor, die Rake-Task würde die Datenbank immer noch neu erstellen. Nicht die Antwort, auf die ich gehofft hatte, aber es ist kein Problem mehr.
Der Grund, warum ich anfing, war, weil ich keinen Zugriff auf eine andere Datenbank hatte, die ich zum Testen verwenden konnte. Daher verwendete ich meine Entwicklungsdatenbank auch zum Testen. Aber seitdem konnte ich eine andere Datenbank zum Testen bekommen.
Danke trotzdem Bohdan! Ich schätze die Hilfe!
Ich bin froh, es zu hören. Ihre Testdatenbank * sollte bei jedem Test gelöscht werden, ansonsten werden Ihre Tests ungenau. –