ActiveRecord::StatementInvalid: Could not find table
DB-Tabelle kann beim Ausführen des Tests nicht gefunden werden
rails db:migrate:reset RAILS_ENV=test
Setzen Sie die Test-DB mit zurück
rails dbconsole -e test
sqlite> .table
Überprüfen Sie, ob die Tabelle mit gemacht ist. Erstellt.
Viele Leute denken, dass dies die Lösung ist, aber wenn Sie den Test erneut ausführen,
ActiveRecord::StatementInvalid: Could not find table
Gleicher Fehler.
Und als ich den Tisch noch einmal überprüfte, verschwand der Tisch.
bei rails_helper.rb
rails_helper.rb
#Code zum Auskommentieren
ActiveRecord::Migration.maintain_test_schema!
Ich habe das auskommentiert.
Dann habe ich bestanden. Die Tabelle wurde jedoch noch nicht erstellt, und alle Tests, die die Tabelle verwenden, sind fehlgeschlagen.
Code zum automatischen Migrieren der Test-DB, indem Sie sich schema.rb ansehen, bevor Sie rspec ausführen.
Ich dachte, dass es ein Problem mit dem Schema geben könnte, dass der Test ausgeführt wird, indem dieses entfernt wird, also habe ich es bestätigt.
Es wurde so in die Schemadatei geschrieben.
Die Tabelle kann nicht im Schema wiedergegeben werden.
Dann
migration_name.rb
def up
change_column :comments, :discovery_id, :reference, null: true
end
Es gab einen Teil, der sein sollte.
Es gibt keinen Hinweis auf den Typ, aber aus irgendeinem Grund habe ich dies getan.
Ändern: Verweis auf: Ganzzahl und Schienen db: migrieren: zurücksetzen Wurde im Schema beschrieben.
Setzen Sie die Migration erneut zurück, nachdem Sie im Schema gut dokumentiert wurden
rails db:migrate:reset RAILS_ENV=test
Und kommentieren Sie ActiveRecord :: Migration.maintain_test_schema aus!
rails_helper.rb
#Kommentar
ActiveRecord::Migration.maintain_test_schema!
Und führen Sie den Test aus
bin/rspec
Ich habe alle Tests bestanden.
Testausführung → Tabelle nicht gefunden → Zurücksetzen und Migrieren in der Testumgebung → Tabelle wurde erstellt → Testausführung erneut → Fehlend und nicht gefunden → Lesen Sie das Schema nicht unmittelbar vor der Ausführung → Testarbeiten → Tabelle, die nicht im Schema gefunden wurde, wird beschrieben Nicht erledigt → Richtig migrieren → Testlauf
Es war so.