我有一个带有一个配置数据库的django settings.py
文件,导致两个mysql数据库,我们称之为dbname
和test_dbname
。
运行python manage.py test ...
之类的命令时,会选择像
MyClass.objects.all()
到目前为止,将从test_dbname
中选择对象。
另一方面,如果我使用
测试html页面的生成client = django.test.Client()
response = client.post(...)
然后创建client
对象的测试代码(或者我不确定)和post
参数使用test_dbname
,而为{{1}提供服务的线程请求并生成响应使用post
(没有test_ prepended)。
这是一个不便之处,因为:
我可以让服务器线程使用我可以从测试用例线程控制的数据库吗?
答案 0 :(得分:0)
感谢knbk解决了这个问题的答案:答案是在单元测试开始之前不应该运行任何查询。在我的情况下,这意味着替换像
这样的表单定义var result = peopleDataBase.orderByChild("mCalculateFaceSizeWidth")
.startAt(mCalculateFaceSizeWidth())
.limitToFirst(1)
.on("value").then(function(snapshot) {
//This forEach brings at most one node
snapshot.forEach(snapshotChild){
var person = {
"name":snapshotChild.val().name,
"age":snapshotChild.val().age,
"id":snapshotChild.val().id,
"children":snapshotChild.val().children,
"address":snapshotChild.val().address,
"image":snapshotChild.val().image
}
if(key != snapshotChild.key){
people += person;
key = snapshotChild.key;
}
}
return people;
});
在导入文件时运行class MyForm(forms.Form):
my_field = forms.ChoiceField(choices=<somequery>)
,即在测试用例运行之前,运行:
somequery