Küçük uygulamamı test etmek istiyorum, ayrı bir pakette saklıyorum. Şu anda bir "test_project" dizini oluşturdum, orada bir test projesi oluşturdum ve testleri çalıştırmak için projenin manage.py dosyasını kullanıyorum. Ama merak etmeye devam ediyorum - daha iyi bir yöntem var mı? Tek bir uygulamanın testlerini, belki de bazı varsayılan konfigürasyonlarla (sqlite veritabanı gibi) başlatmak mümkün mü?Django'da tek bir uygulama (proje değil) nasıl test edilir?
cevap
Bu amaç için bir Django test projesi oluşturmadan tek bir uygulamanın sınamalarını bağımsız olarak çalıştırmak mümkündür. Bunu yapmanın bir yolu, uygulamanızın Django ayarlarını ayarlayan ve ./manage.py test your_app
'u programlı olarak çalıştıran bir kök dizine runtests.py
oluşturmaktır. runtests.py
'un bir örneği, Django'nun kendi: runtests.py (documentation).
Django'nun kendine ait runtests.py
iyi bir başvuru kaynağıdır, ancak çoğu durumda kıvrımlı buluyorum.
Tabii sen can herhangi django bağımlılıkları
Bir Django ortamı gerekmiyorsa unittest bir bağımsız olan Python parçalar en az bir settings.py ve manage.py dosyası gerektirir testi. Bunları yalnızca temel öğelerle düzenleyebilir ve uygulamanızı manage.py ile UnitTest yapabilirsiniz. Bir projeyi Django çalışma ortamı olarak görmelisiniz, onsuz Django yok. Muhtemelen ayarları taklit edebilirsiniz ama tbh basitlikten daha çok hack oluşturuyor olursunuz.Burun kullanırsanız, tek bir uygulamanın testlerini çalıştırabilirsiniz. tek bir uygulamayı test etmek için olduğu gibi
python manage.py test app.tests:TestClassHere
. Sadece diğer büyük django projelerinin yaptığı konvansiyonu takip ediyorum ve bu tam olarak yaptığınız şey. Bir test_project dizini oluşturun. o benim için yeterince iyi büyük Django geçmeli bazı uygulamalar için yeterince iyi olup olmadığını
https://bitbucket.org/jespern/django-piston/src/7c90898072ce/tests/test_project
Düşündüm.
Project dir/
/myapp
/myotherapp
/myproject
Django sen çalıştırmasına izin veriyor: En django yapısı olması gerektiği gibi böyle bir şey görünüyorsa burada henüz
onu görmüyorum çünkü
en iyi biriydi olarak bu kabul cevabı oldu çok uzun bir süre için teşekkür ederiz: Aşağıda alternatif birkaç örnek bulunmaktadır. Şu anda bu Dario tarafından daha iyi olduğunu düşünüyorum. Yaklaşık 5 yıl boyunca kabul edilen cevap olduğunuz için teşekkür ederiz. – dotz
bu yazıya dökmek Sadece "myotherapp" den yürütmek için "0: 0355"Bu projeler dizinindeki tüm test yapacağını
./manage.py test
oysa "myotherapp" altındaki tüm test yapacağını.
Seçilen cevap –
- 1. iPhone uygulama güncellemesi nasıl test edilir?
- 2. SQL Server veritabanı Tek Kullanıcı Modundaysa nasıl test edilir
- 3. Mac OS veya Linux'ta Edge'de nasıl uygulama test edilir
- 4. Tek tek oturum maxAge nasıl ifade edilir?
- 5. Bir sendAsynchronousRequest nasıl test edilir: XCTest üzerinde
- 6. Redux: Bağlı bir bileşen nasıl test edilir?
- 7. Uzak bir sisteme erişilebiliyorsa nasıl test edilir
- 8. Uygulamamda yerelleştirme nasıl test edilir
- 9. Dize = Enum.Value nasıl test edilir?
- 10. Python'un kendisi nasıl test edilir?
- 11. Eşzamansız kod nasıl test edilir
- 12. Golang'da io.writer nasıl test edilir?
- 13. ElasticSearch Eclipse'de nasıl test edilir?
- 14. Arabirim Yöntemi nasıl test edilir
- 15. Açısal 2 ve jQuery - nasıl test edilir?
- 16. UnitTest ++ ile nasıl tek bir test çalıştırırım?
- 17. Test sınıfları ve test bağımlılıklarını sbt asssembly'a nasıl dahil edilir
- 18. Proje geliştirme maliyeti nasıl teklif edilir
- 19. Ünite MonoDevelop'ta tek bir [Test] yöntemini nasıl test edebilir?
- 20. Site.com'da proje önizlemesi nasıl kontrol edilir
- 21. Nginx tek uygulama yapılandırması
- 22. Tek bir test dosyası çalıştırılıyor
- 23. ASP.Net çekirdek proje değil
- 24. Laravel'de POST rotaları nasıl test edilir
- 25. NSEvent: tek modfierkey test
- 26. Dekore edilmiş işlevler nasıl birim-test edilir?
- 27. Görsel temel proje için test kapsamı
- 28. Bir uygulama Google Drive API'sı (Java istemcisi) kullanarak nasıl test edilir
- 29. Karma run tek test
- 30. Bir değişkenin bir Moment.js nesnesi olup olmadığı nasıl test edilir?
olmalıdır. Sizden destek aldınız ve kabul edilmiş bir cevap olarak işaretledim. Bilgi eklemenizi gerçekten çok isterim, çünkü Django'nun "runtests.py" adlı bir versiyonu destekleniyor. Yeni mi? – dotz
@dotz, bu çok ilginç bir soru, cevabını bilmiyordum ama buna direnemedim. Django'nun "runtests.py" 'inin 2005 yılında oluşturulduğu ve v1.0'dan beri mevcut olduğunu görebildiğim kadarıyla. Asıl işlem şu: https://github.com/django/django/commit/daf8467b37f7aaae0b463b40a2c9d98f1f53c556#diff-bf0d7f89b37ba018fb5c5b2833b37dd3 –