[英]Django - unit test with sites framework
I've tried to run unittest with sites framework. 我试图用站点框架运行unittest。 This is the test function:
这是测试功能:
def test_main(self):
response = self.client.get('/')
self.assertEqual(response.status_code, 200)
and this is the command: 这是命令:
python2.7 manage.py test --settings=myproject.settings_01
But I've got an error because the test function doesn't know which site I want test. 但是我有一个错误,因为测试功能不知道我要测试哪个站点。
--settings
doesn't work. --settings
不起作用。
How should I say that I want test SITE_ID=1
我应该怎么说我要测试
SITE_ID=1
Error: 错误:
======================================================================
enter code here`ERROR: test_main (sport.tests.SimpleTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/django/test/utils.py", line 216, in inner
return test_func(*args, **kwargs)
File "/home/torm/BookingSystem/sport/tests.py", line 12, in test_main
response = self.client.get('/')
File "/usr/lib/python2.7/site-packages/django/test/client.py", line 470, in get
**extra)
File "/usr/lib/python2.7/site-packages/django/test/client.py", line 286, in get
return self.generic('GET', path, secure=secure, **r)
File "/usr/lib/python2.7/site-packages/django/test/client.py", line 358, in generic
return self.request(**r)
File "/usr/lib/python2.7/site-packages/django/test/client.py", line 440, in request
six.reraise(*exc_info)
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 130, in get_response
% (callback.__module__, view_name))
ValueError: The view system.views.main_page didn't return an HttpResponse object. It returned None instead
Main function: 主功能:
def main_page(request):
site = get_current_site(request)
if site.name == 'sport':
return sport.views.main_page(request)
I have found the solution. 我找到了解决方案。
I didn't change name of site in test database. 我没有在测试数据库中更改站点的名称。
def setUp(self):
site = Site.objects.get(id=1)
site.name = 'sport'
site.save()
When I add this code to test class everything works fine. 当我添加此代码以测试类时,一切正常。
Does your settings_01.py is in /project folder ? 您的settings_01.py是否在/ project文件夹中? And please give us the trace of error.
并且请给我们一些错误的痕迹。
You can specified wich project or app you want to test by args. 您可以指定要通过args测试的项目或应用程序。
Exemple : 范例:
python2.7 manage.py test myproject.myapp --settings="myproject.settings_01"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.