我收到了一个django-1.7安装,并被要求让测试工作的内部django模块。(具体来说,我们运行的是Django==1.7.9和psycopg2==2.5.4)
经过两天的绞尽脑汁,我仍然发现当我运行manage.py test mymodule时,它正在针对production postgres数据库进行测试,而不是创建用于安装夹具数据的测试数据库。
奇怪的是,我没有收到任何错误消息,也没有看到它试图创建测试数据库的任何指示。测试套件只是对生产数据库进行测试。
我已经验证了我正在运行的用户,以及在postgres中为测试数据库创建/删除权限的用户。
我还试图让我的测试套件使用内存中的数据库,方法是按照文档指定一个TEST数据库引擎作为内置sqlite3,如下所示:
DATABASES = {
'default': {
'NAME': DATABASE_NAME,
'PASSWORD': 'nottherealpassword',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'nottherealdbuser',
'PORT': '5432',
'HOST': '127.0.0.1',
'TEST': {
'ENGINE': 'django.db.backends.sqlite3'
}
},
}这种配置的行为也没有变化,甚至没有迹象表明正在尝试创建。在某种情况下,测试运行程序甚至拒绝为给定模块创建测试数据库?我已经尝试过默认的django运行程序和django_nose,行为没有改变。
我的首选结果将是在内存中使用固定设备填充的小型数据库上进行测试;我的第二个首选结果是在postgres中创建测试数据库,但不需要从一开始就运行每次迁移。
发布于 2016-08-31 03:13:16
原来我们使用的是多数据库安装程序。将DATABASE_ROUTERS设置为空白可迭代[]重新启用测试数据库创建。
https://stackoverflow.com/questions/39209962
复制相似问题