免责声明:
我是 Django 的新手。我必须说到目前为止我真的很喜欢它。 :)
(现在是“但是”……)
但是,我似乎遗漏了一些与单元测试相关的内容。我正在开发一个带有 Oracle 后端的新项目。当您运行单元测试时,它会在尝试创建架构时立即给出权限错误。所以,我明白了它想要做什么(创建一个干净的沙箱),但我真正想要的是针对现有模式进行测试。我想使用我的服务器将在生产中使用的相同用户名/密码来运行测试。当然,该用户不会拥有任何类型的 DDL 类型权限。
因此,我看到的基本问题归结为:我的系统(和大多数系统)希望其“app_user”帐户仅具有运行所需的权限。通常,这是基本的“CRUD”权限。然而,Django 单元测试似乎需要更多来进行测试运行。
其他人如何处理这个问题?是否有一些我不知道的 Django 设置/解决方法/功能(请参阅最初的免责声明)。
预先感谢您的帮助。
大卫
最佳答案
不要强制 Django 做一些不自然的事情。
允许它创建测试架构。这是一件好事。
从您现有的架构中,执行
unload
以创建数据的 .JSON 转储文件。这些文件是您的“固定装置”。 Django 使用这些固定装置来填充测试数据库。这是有史以来最伟大的测试工具。一旦您调整好固定装置,这确实很管用。将您的夹具文件放入每个应用程序包内的
fixtures
目录中。更新您的单元测试以命名该测试用例所需的各种固定文件。
这实际上是使用现有模式进行测试。它会在原始数据库中重建、重新加载和测试,因此您可以绝对确保它在不破坏(甚至触及)实时数据的情况下正常工作。
关于python - 使用 Django 单元测试的数据库权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195791/