Django测试客户端响应上下文无

时间:2010-11-10 10:21:44

标签: django ubuntu django-testing

我已将我的Django应用程序从我的开发机器(OS X,Python 2.6.5,Django 1.2.3)移动到临时服务器(Ubuntu VM,Python 2.6.6,Django 1.2.3)。

如果我现在在登台服务器上运行我的测试套件,那么在使用Django TestClient时会有两个测试失败,因为response.context是None(但是response.content是正确的)。

例如:

self.assertEquals(self.session.pk, response.context['db_session'].pk)

这些测试用例传递给开发机器。

有没有人遇到过类似的问题?

2 个答案:

答案 0 :(得分:9)

您需要添加测试设置声明。

import django
django.test.utils.setup_test_environment() 

按照我的链接查找更多详情: http://jazstudios.blogspot.com/2011/01/django-testing-views.html

答案 1 :(得分:0)

来自Django文档:

  

尽管*您的代码* [+]将在Python交互式解释器中运行,但是某些测试客户端的功能(尤其是与模板相关的功能)仅在测试运行时可用。这样做的原因是Django的测试运行程序执行了一些黑魔法,以便确定给定视图加载了哪个模板。这种黑魔法(本质上是内存中的Django模板系统的补丁)仅在测试运行期间发生。

因此,如果您在测试运行中运行它,它应该可以工作。

您可以看到this question