如果您在 Django 中设置了数据库,如何让 TestRunner 使用“实时”数据库(根据 DATABASE_* 中的设置settings.py
)而不是在临时测试数据库上运行它们。
例如,我想在live
指定的数据库上运行以下测试settings.py
:
import unittest
from example import models
class DBDriverTest(unittest.TestCase):
db testDriver(self):
"Connect to the live database and drop in sample value."
m = models.MyModel('hello')
m.save() # ... save to the live database from settings.py
目前上面的代码只会保存到已经构建好的测试数据库中。这是非常有限的,因为我的应用程序有多个在数据库上工作的并行进程——而且我的单元测试将是不完整的(并且不连贯的),而无法将内容泵入“实时”数据库并查看它们在短暂睡眠后所处的位置。
我能想到的两个潜在选择是:
插入 Django API 以了解如何“手动”连接到 settings.py 中的数据库
与“实时”数据库建立低级连接并手动填充它
先验是有问题的,因为它依赖于 Django 的公共 API 下的东西。后者是有问题的,因为它放弃了与数据库无关的 Django 数据库 API,并且需要更多的手动操作。
我很感激你的想法和意见。
布赖恩