Esiste un modo banale per copiare i dati dal database di sviluppo nel test? So che esiste un modo per copiare lo schema e ricreare il database, ma esiste un'attività di rake per popolare il database di test con uno di sviluppo?Rails - Compila il database di test con i dati di sviluppo
risposta
È possibile utilizzare mysql direttamente:
mysqldump app_development | mysql app_test
È possibile utilizzare:
rake db:test:clone
Per copiare il db di sviluppo in prova.
Non funziona affatto per me. La struttura viene creata, ma nessun record viene copiato. È questo il compito di copiare i dati? La descrizione non sta puntando direttamente. – mdrozdziel
Non ha funzionato per me. Il database di test sembra vuoto ... –
db: test: clone è una combinazione di db: schema: dump e db: test: prepara e in realtà non copia i dati * – JohnMetta
Se si desidera solo per clonare il DB di sviluppo nella sua interezza, cosa c'è di sbagliato con solo copiando il development.sqlite3 e rinominandolo test.sqlite3? È possibile automatizzare il processo impostando un file batch (o il suo equivalente sul sistema operativo) che è possibile eseguire dalla riga di comando.
Questo funzionerà localmente, ma ho appena realizzato che si potrebbe pensare a un ambiente non locale, nel qual caso probabilmente non lo farà.
Un metodo alternativo se si utilizzano i semi (db/seeds.rb)
In primo luogo, aggiungere un'attività rake ad esempio per lib/task/test_seed.rake con questo codice:
namespace :db do
namespace :test do
task :prepare => :environment do
Rake::Task["db:seed"].invoke
end
end
end
Poi ogni volta che hai cambiato la struttura/contenuto del database attraverso la migrazione e semi, è possibile eseguire
rake:db:test:prepare
per copiare i dati dello schema e del seme.
Quindi sarebbero i passaggi completi:
rake db:migrate
rake db:seed
rake db:test:prepare
Se si esegue 'rake db: test: prepare' dopo' rake db: seed 'cancellerà i tuoi dati seme =] – professormeowingtons
Con Postgres, copiare il database in questo modo:
CREATE newdb DATABASE CON MODELLO originaldb Dbuser PROPRIETARIO;
- 1. Come popolare il database di produzione (heroku) con i dati di sviluppo? (Rails)
- 2. Rails, come migrare i dati dal database di sviluppo sqlite3 al database MySQL di produzione?
- 3. Compila modulo utilizzando i dati di Facebook
- 4. Come posso ricostruire il database di test di Rails prima di ogni test?
- 5. Separare il database di test dell'app Sinatra dal database di sviluppo?
- 6. Django, ajax compila il modulo con i dati del modello
- 7. Rails: test dei job Cron nell'ambiente di sviluppo
- 8. Rails test attraverso rake: non toccare il mio database dev
- 9. Come proteggere i dati utente nel database con Rails?
- 10. Ruby on Rails: accesso ai dati del database di produzione per il test
- 11. Rails 3.1 - Sviluppo con i modelli montabili
- 12. Spork, RSpec e database_cleaner che distruggono il database di sviluppo
- 13. database di sviluppo laravel database sqlite inesistente
- 14. Come utilizzare il database di test con Capybara?
- 15. Test di integrazione Servizi WCF concatenati con database di test
- 16. Quando Rails compila CoffeeScript?
- 17. Rails database di valori booleani
- 18. Esegui i test delle guide senza perdere il database di test
- 19. Test con PayPal con Rails
- 20. Test di un'applicazione rota con più database
- 21. Dove inserire i dati per i test automatici con test?
- 22. Test dell'integrazione SpecFlow con modelli di database
- 23. Database di rollback dopo i test di integrazione (selenio)
- 24. Salta L'esecuzione del caso di test in Maven non compila nemmeno i casi di test
- 25. Test Driven Development (TDD) con Rails
- 26. Come lavorare con i test e gli impianti in un database con contorni di chiave esterna in Rails?
- 27. Impossibile eseguire i test Ruby on Rails sui database di Postgres ospitati da Heroku
- 28. Il test dell'unità Rails non carica i dispositivi
- 29. Memorizza i dati in Ruby on Rails senza Database
- 30. Test phpunit con database
se non si sta usando mysql, @ j0k ha la migliore risposta finora con: rake db: test: clone && rake db: seed RAILS_ENV = 'test' – Krut