2017-09-24 2 views
0

Jetzt verwenden mag ich API testen, meine Standard-Datenbank als ich zum ersten Mal zu viele Daten benötigenWie Standarddatenbank in django Testen

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'bills_db', 
     'USER': 'root', 
     'PASSWORD': '****', 
    } 
} 

Wie kann ich es benutzen ?

Antwort

1

Verwenden Sie den gleichen Datenbanknamen für Ihre Standard-und Test.

django verwendet das folgende Muster Datenbanken zu definieren:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql', 
     'USER': 'mydatabaseuser', 
     'NAME': 'mydatabase', 
     'TEST': { 
      'NAME': 'mytestdatabase', 
     }, 
    }, 
} 

nur mydatabase anstelle von mytestdatabase

+0

'Type 'ja', wenn Sie Möchten Sie versuchen, die Testdatenbank 'bills_db' zu löschen, oder 'no', um abzubrechen: no ' , dann geben Sie' Tests cancelled 'zurück. –

+0

versuchen Sie --keepdb, um Ihre Datenbank zu erhalten – Serjik

1

Eine weitere Option Django's database fixtures für die Daten zu verwenden wäre, die alle Ihre Umgebungen (Test üblich ist , dev, prod). Der zusätzliche Vorteil hierbei ist, dass Vorrichtungen machen es einfach, eine neue Datenbank mit gemeinsamen Daten auf Saatgut:

./manage.py loaddata myfixture1 myfixture2 

Sie können fixures erstellen mit ./manage.py dumpdata. Hier ist, wie eine JSON-Halterung aus einem Modell Author in dem books App, zum Beispiel genannt erstellen:

mkdir books/fixtures 
./manage.py dumpdata --indent=2 --output books/fixtures/author.json books.author 

Dann können Sie diese Leuchte in Ihren Tests verwenden:

from django.test import TestCase 


class AuthorTestCase(TestCase): 
    fixtures = ['author'] 
    ....