SORU
6 Mayıs 2011, Cuma


django bir db olmadan birim testleri

Bir db ayarlamadan django unittests yazmak için bir olasılık var mı? Db ayarlama gerektirmeyen iş mantığını test etmek istiyorum. Ve kurulum için hızlı olsa da bir db, gerçekten bazı durumlarda gerek yok.

CEVAP
10 AĞUSTOS 2011, ÇARŞAMBA


DjangoTestSuiteRunner alt ve setup_databases geçersiz kılabilirsiniz ve yöntemleri geçirmek için teardown_databases.

Yeni bir ayarlar dosyası oluşturmak ve oluşturduğunuz yeni sınıfa TEST_RUNNER ayarlayın. Test koşarken, yeni ayarlarınızı ayarları bayrağı ile dosya belirtin.

Yaptığım şey burada:

Özel test uygun bir koşucu buna benzer oluşturun:

from django.test.simple import DjangoTestSuiteRunner

class NoDbTestRunner(DjangoTestSuiteRunner):
  """ A test runner to test without database creation """

  def setup_databases(self, **kwargs):
    """ Override the database creation defined in parent class """
    pass

  def teardown_databases(self, old_config, **kwargs):
    """ Override the database teardown defined in parent class """
    pass

Özel ayarları oluşturmak:

from mysite.settings import *

# Test runner with no database creation
TEST_RUNNER = 'mysite.scripts.testrunner.NoDbTestRunner'

Testlerinizi çalıştırırken, aşağıdaki ... ... ayarları bayrağı yeni ayarları dosyası gibi çalıştırın:

python manage.py test myapp --settings='no_db_settings'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Bane

    Joshua Bane

    24 Temmuz 2007
  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007