Jac*_* Ha 5 python django unit-testing
我正在尝试按照Django testing docs 中的信息测试在 PostGIS 数据库上运行的 Django 应用程序。
通常我通过复制模板来创建一个新数据库:
(作为用户 postgres)
createdb -T template_postgis -O lizard test_geodjango2
Run Code Online (Sandbox Code Playgroud)
当我运行时./manage.py test,我收到以下消息:
正在创建测试数据库...创建测试数据库时出错:创建数据库的权限被拒绝
如果您想尝试删除测试数据库“test_geodjango2”,请键入“yes”,或者键入“no”以>取消:
让系统创建数据库的最佳方法是什么?
您可能DATABASE_USER没有创建新数据库/架构的权限。
编辑
如果您阅读 Django 命令的源代码test,您会发现它总是创建一个测试数据库。此外,它还会修改您的设置以引用此测试数据库。
请参阅: http: //docs.djangoproject.com/en/dev/topics/testing/#id1
你应该做的是使用固定装置。我们是这样做的。
从您的模板数据库中创建一个“夹具”。使用该manage.py dumpdata命令创建包含所有模板数据的 JSON 文件。[提示,该--indent=2选项为您提供了可以编辑和修改的可读 JSON。]
将其放在fixtures您的应用程序下的目录中。
在 TestCase 类定义中引用装置文件。这将在运行测试之前加载夹具。
class AnimalTestCase(TestCase):
fixtures = ['mammals.json', 'birds']
def testFluffyAnimals(self):
etc.
Run Code Online (Sandbox Code Playgroud)灯具取代您的模板数据库。有了固定装置后,您就不再需要模板了。
| 归档时间: |
|
| 查看次数: |
2548 次 |
| 最近记录: |