Nasıl django'bellek sadece test veritabanı s çalıştırmak için? | Netgez.com
SORU
22 HAZİRAN 2010, Salı


Nasıl django'bellek sadece test veritabanı s çalıştırmak için?

Django benim birim çalıştırmak için uzun zaman alır testleri, bunu hızlandırmak için bir yol arıyorum. Bir SSD yüklemeden düşünüyorum ama çok olumsuz tarafları var biliyorum. Tabii ki benim kod ile yapabileceğim şeyler var, ama yapısal bir düzeltme arıyorum. Hatta tek bir test veritabanı / Güney her zaman yeniden inşa geçirilmiş olması gerektiği için yavaş. İşte benim fikrim!

Test veritabanında her zaman oldukça küçük olacak biliyorum, neden gidip sistem her zaman RAM tüm test veritabanı tutmak için yapılandırabilir mi? Hiç disk dokunun. Kimseye django bu yapılandırmak için nasıl biliyor mu? Bu üretim kullanıyorum ne zamandan beri mysql kullanmaya devam etmeyi tercih ederim, ama eğer sqlite3 ya da başka bir şey bu kadar kolay yapar, öyle giderim.

Sqlite veya mysql tamamen hafızasında çalıştırmak için bir seçenek var mı? Bunun olması mümkün yapılandırmak için bir RAM disk ve yapılandırma, test veritabanı için mağaza veri yok, ama nasıl emin değilim söyle django / mysql için kullanmak farklı bir datadır için belirli bir veritabanı, özellikle bu yana sağlıyor sildim ve yeniden her çalıştırın. (Mac FWIW değilim.)

Herhangi bir işaretçiler takdir ya da deneyim. Bu kelimenin tam anlamıyla kod ile ilgili bir soru değil, ama kesinlikle eminim ki yazılım mühendisliği bir sorun varsa özür dilerim eğer bir şık varsa orada bir sürü insan yararına çözecek.

CEVAP
23 HAZİRAN 2010, ÇARŞAMBA


Testlerinizi, Django will use a in-memory database çalıştırdığınızda sqlite3 veritabanı motoru olarak ayarlayın.

Motor testleri çalıştırırken sqlite için ayarlayın.* *4 benim bu gibi bir kod kullanıyorum:

if 'test' in sys.argv:
    DATABASE_ENGINE = 'sqlite3'

Veya Django 1.2:

if 'test' in sys.argv:
    DATABASES['default'] = {'ENGINE': 'sqlite3'}

Ve nihayet Django 1.3 ve 1.4

if 'test' in sys.argv:
    DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}

(Arka uç tam yolunu Django 1.3, ama ayarı ileri uyumlu hale getirir ile kesinlikle gerekli değil.)

Ayrıca Güney göçler ile ilgili sorunlar yaşıyorsanız durumunda aşağıdaki satırı ekleyebilirsiniz:

    SOUTH_TESTS_MIGRATE = False

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Damien Walters

    Damien Walte

    20 AÄžUSTOS 2006
  • SuppressedStorm

    SuppressedSt

    11 AÄžUSTOS 2013