2017-11-24 2 views
1

Wenn ich python manage.py test ausführen, wird django eine seltsame Frage jedes Mal fragen:Haben Sie einen Fehler bei der Testdatenbank zu erstellen: Django Unittest

$ python manage.py test 
Creating test database for alias 'default'... 
Got an error creating the test database: (1044, "Access denied for user 'nyble'@'localhost' to database 'test_nybledb'") 
Type 'yes' if you would like to try deleting the test database 'test_nybledb', or 'no' to cancel: 

ich es erwartete einen Grund sqlite3 DB nur löschen und neu schreiben, und ich will dieses Verhalten nicht.

Ob ich sagen, ja oder nein, es Tests nur beendet:

Destroying old test database for alias 'default'... 
Got an error recreating the test database: (1044, "Access denied for user 'nyble'@'localhost' to database 'test_nybledb'") 

In Einstellungen Ich habe

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     'NAME': 'nybledb', 
     'USER': 'nyble', 
     'PASSWORD': 'password', 
     'HOST': 'localhost', # Or an IP Address that your DB is hosted on 
     'PORT': '3306', 
    } 
} 

Wie kann ich das verhindern und es normal sqlite3 db Tests während der Fahrt machen verwenden? Danke

Antwort

2

Sie können dies in settings.py einrichten. Es besagt, dass sqlite als db engine verwendet wird, wenn in der Befehlszeile "test" vorhanden ist.

import sys 
if 'test' in sys.argv or 'test_coverage' in sys.argv: #Covers regular testing and django-coverage 
    DATABASES['default']['ENGINE'] = 'django.db.backends.sqlite3' 
+0

ja das funktioniert, danke – codyc4321

Verwandte Themen