2012-05-12 9 views
6

Tüm testler hatasız tamamlanır ve armatürler aslında yüklenir. Django 1.4 sorunu mu?Django 1.4, "Hiçbir veritabanı donanımı belirtilmemiş. Lütfen komut satırında en az bir fikstürün yolunu belirtin."

Lütfen sadece bazı uygulamaların bu hata mesajını kışkırttığını unutmayın (uygulamaların birim testleri ve bunların ilgili donanımları arasında kavramsal bir fark yoktur).

Güncelleme 1:fasttest.py içeriği:

DATABASES = {'default': 
    { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': ':memory:', 
    } 
} 

~/django_project$ ./manage.py test appname --traceback --settings=fasttest 
Creating test database for alias 'default'... 
.....................No database fixture specified. Please provide the path of at least one fixture in the command line. 
. 
---------------------------------------------------------------------- 
Ran 22 tests in 8.426s 

OK 
Destroying test database for alias 'default'... 

Güncelleme 2: Ben denemeden için şükrediyorum rağmen besbelli yorum, karanlıkta tek çekim vardır. Veritabanı önemli değil, ne SQLite3 ne de Postgres test DB'leri sorunu çözmez.

+0

Gerçekten çok daha fazla ayrıntıya ihtiyacımız var. Tüm yığın izini soruya kopyalayabilir misiniz? Settings.py dosyanızın veritabanı bölümünü de görmek güzel olurdu. – Paragon

+0

Eğer iyi hatırlarsam, sqlite3'ü DB desteği olarak kullanacaksanız, db yolunu belirtmeniz gerekir. Bu, Django 1.3.1'de yorumlanmış bir gereklilikti. Elbette 1.4 için aynısını söyleyemem ama deneyebilirsiniz. –

+0

Aslında, ben dümenlerin DB ile sorun olduğunu düşünüyorum. Onları çıkarmayı deneyin ve işe yarayıp yaramadığını görün. –

cevap

7

Aynı sorunun 1.4 altında gayet iyi çalışan test fikstürleriyle de vardı. Benim için

, ben bir fikstür kullanarak değildi bir test durumu vardı ve bu yüzden böyle boş kümeye demirbaşlar batıyordu:

class MyTestCase(TestCase): 
    fixtures = [] 

Ben, bu hat üzerinden hata yorumladı gitti:

class MyTestCase(TestCase): 
# fixtures = [] 
+0

Django'nun 'TestCase._fixture_setup()', yalnızca içeriktr'i kontrol etmek yerine 'hasattr (' fikstür ') 'seçeneğini kontrol eder, ardından şikayetin geldiği yer olan loaddata'yı çağırır. Loaddata bu konuda şikayette bulunmadığı için hem hata mesajından hem de gerçek fikstür yüklemesinden sakınabilirsiniz, çünkü: 'fixtures = [' BOGUS '] ' –

İlgili konular