Testlerimi çalıştırmak ve testlerimi yapmak istediğimde her zaman bir veritabanı oluşturmak ve silmek için mevcut bir test veritabanını kullanmak istiyorum. Mümkün mü?Django Sınamalarının, her seferinde onu oluşturmak yerine kullanmak için nasıl bir veritabanı belirtebilirim?
cevap
Burada, mümkün bir yoludur:
1) Kendi testi koşucu nasıl olduğunu görmek için here bakmak tanımlayın. default test runner da özel test koşucu görünüm için
2), sadece kopyalayıp kod geçmiş ve sadece bu satırı yorum yapabilirsiniz: Test veritabanı imha etmekle sorumlu olan connection.creation.destroy_test_db(old_name, verbosity)
ve i içinde connection.creation.create_test_db(..)
çizgi koymak gerektiğini düşünüyorum Bu belki gibi bir şey hariç deneyin:
try:
# Create the database the first time.
connection.creation.create_test_db(verbosity, autoclobber=not interactive)
except ..: # Look at the error that this will raise when create a database that already exist
# Test database already created.
pass
3) test koşucu için setting.py içinde TEST_RUNNER doğaldır.
4) Şimdi böyle testinizi çalıştırın: ./manage.py testi
Öyleyse bu iyi görünüyor ama hala yerel test bağlantısına kurmam gerekiyor db no? –
@Ryan Detzel: Daha fazla ayrıntı için cevabımı düzenledim, sorduğum soru ile ilgili test kodunun üzerinde test kodu oluşturulduğunda ilk defa çalıştırılacağını düşünüyorum, bu test veritabanı atomik olarak Django tarafından oluşturuldu: http://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#the-test-database – mouad
@mouad, bağlantı noktalarını bile yüklemeyecek şekilde ayarlayabilir miyim? –
kullanıyor Django> = test çalışır arasında test veritabanını korur --keepdb 1,8
python manage.py test --keepdb
. Bu, özellikle büyük bir test paketindeki testleri yürütme süresini büyük ölçüde azaltabilen hem yaratma hem de yok etme eylemlerini atlama avantajına sahiptir. Test veritabanı mevcut değilse, ilk çalıştırmada oluşturulacak ve daha sonraki her çalışma için korunacaktır. Test paketini çalıştırmadan önce, test edilmemiş tüm geçişler de test veritabanına uygulanır.
Django 1.6 için nasıl? benzer bir yolu var mı ?? –
- 1. Bir WCF hizmet istemcisini yeniden kullanmak veya her seferinde bir tane oluşturmak mı istiyorsunuz?
- 2. Sayfada (django) her seferinde get_absolute_url çağrısından nasıl sakınılır?
- 3. XSLT: Döngü her seferinde
- 4. Django - bir model için veritabanı nasıl belirlenir?
- 5. Her seferinde bir sıradan iki öğe alın
- 6. Rastgele değeri almak için alt sorguyu kullanmak her seferinde aynı değeri gösterir
- 7. CSS kullanarak görüntüleri yerine ben oluşturmak için üç farklı resim yerine mermi kullanmak istiyorum
- 8. Yapılandırılmamış farklı bir veritabanı için django makemigrations
- 9. Karşılaştırıcılar her seferinde mi, yoksa sadece bir kez mi uygulanmalıdır?
- 10. Mobil görünümde her seferinde bir div geçişi
- 11. Force Mercurial her zaman kullanmak için --subrepos
- 12. Kullanılacak veritabanı yalıtım düzeyini nasıl yüksek düzeyde belirtebilirim?
- 13. SQLAlchemy'ı kullanmak için Django yapılandırılıyor
- 14. jQuery bir dizi Ben bir resim sürgüsünü inşa etmeye çalışıyorum her seferinde (yerine hepsinden aynı anda)
- 15. Django Admin'i select_related'i kullanmak için nasıl zorlarsınız?
- 16. JQuery efekti her seferinde bir öğeye nasıl sınırlandırabilirim?
- 17. Bağlantı yerine Div'leri kullanmak
- 18. Clojure içinde, kullanmak için ... kullanmak yerine deyimsel olarak kullanmaktır ... ns makrosunda kullanmak yerine ...
- 19. Django: dinamik veritabanı dosyası
- 20. Django veritabanı şemasını nasıl sınayabilirim?
- 21. geniş uzun çoklu ölçümler her seferinde
- 22. Her seferinde sunucuyu yeniden başlatmak yerine Nodejs başlatma değişiklikleri nasıl yapılır?
- 23. Her seferinde kimlik doğrulama olmadan github'ten çekin
- 24. bunu her seferinde kapanış ben açılış yerine kalıcı bir veritabanı bağlantısı açmak için bir yol arıyorum ve düğüm-mongodb yerli sürücüleri kullanıyorum NodeJS
- 25. Django: Veritabanı tasarımı için en iyi uygulamalar
- 26. Django + Emacs (TextMate yerine)
- 27. Bir COM nesnesi oluşturmak için CoCreateinstance yerine C++ "operatör yeni" kullanmak güvenli midir?
- 28. Olay sinyali her seferinde iki kez gönderiliyor
- 29. SqlDataReader nesnesi, her seferinde bir işlem gerçekleştirildiğinde bir istisna atar
- 30. AngularJS'de her seferinde url değişikliği için hangi işlev çağrılır?
neden bunu istersiniz? Ayrıca veritabanı oluşturulmasını test etmek istersiniz ... –
Yapılması saatler sürmez. –
Testler için farklı DB motoru seçebilirsiniz (sqlite daha hızlı DB oluşturma yoluna sahiptir) –