python - 创建测试数据库时出错 : Django unittest

标签 python django 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',
    }
}

我怎样才能阻止它并让它在运行测试期间使用正常的 sqlite3 数据库?

最佳答案

您可以在 settings.py 中进行设置。它说如果命令行输入中有'test',则使用sqlite作为数据库引擎。

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 - 创建测试数据库时出错 : Django unittest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466185/

相关文章:

python - Pandas - 如果满足条件则更新列

python - 在 python/networkx 有向图中分离边箭头

管理员中的 Django 自定义用户模型,关系 "auth_user"不存在

python - 如何卡住时间并断言模板中的时间戳?

Django 测试如何断言重定向

python - 如何在 pandas 的数据框中绘制箭头?

python 辅助函数和返回语句

javascript - 如何使用 javascript 来验证表单?

Django:如何将 2 天添加到用户输入的现有日期

python - 运行 Django 单元测试会导致南迁移重复表