我正在使用生菜框架进行测试,我想用新数据库运行测试并加载一些测试夹具。类似于单元测试运行,当定义测试夹具时
有可能吗?
答案 0 :(得分:0)
这是一个代码片段,用于加载主要取自Django测试用例的灯具。您只需要确保“db”指向正确的db(测试数据库)。我通过传入自定义设置文件来完成此操作。 “db”这里只指一个别名,而不是一个实际的连接。如果您只使用一个数据库(不计算测试数据库),则只需将其设置为“默认”。因此,如果您测试的类属性为“fixtures”,它将使用与loaddata
管理命令相同的规则加载灯具。
if getattr(self, 'multi_db', False):
databases = connections
else:
databases = [DEFAULT_DB_ALIAS]
for db in databases:
if hasattr(self, 'fixtures'):
# We have to use this slightly awkward syntax due to the fact
# that we're using *args and **kwargs together.
call_command('loaddata', *self.fixtures,
**{'verbosity': 0, 'database': db})
你需要
import from django.core.management import call_command
使这项工作。