创建测试数据库出错:Django unittest
Got an error creating the test database: Django unittest
当我运行python manage.py test
时,django每次都在问一个奇怪的问题:
$ 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:
我原以为它只是删除并重新制作一个基本的 sqlite3 数据库,我不希望出现这种情况。
无论我说是还是否,它都会退出测试:
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'")
在我的设置中
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',
}
}
如何在 运行ning 测试期间停止它并使其使用正常的 sqlite3 数据库?
您可以在 settings.py 中进行设置。它说如果命令行输入中有'test',则使用sqlite作为db引擎。
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'
当我运行python manage.py test
时,django每次都在问一个奇怪的问题:
$ 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:
我原以为它只是删除并重新制作一个基本的 sqlite3 数据库,我不希望出现这种情况。
无论我说是还是否,它都会退出测试:
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'")
在我的设置中
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',
}
}
如何在 运行ning 测试期间停止它并使其使用正常的 sqlite3 数据库?
您可以在 settings.py 中进行设置。它说如果命令行输入中有'test',则使用sqlite作为db引擎。
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'