我有一个Django 1.6项目,我正在尝试运行LiveServerTestCase。但是,我的测试用例不需要HTTPS,所以我想禁用它。有没有办法做到这一点?
我跑:
$ website/manage.py test website/tests.py:MySeleniumTests
并且Firefox打开指向:
https://localhost:8081/
我可以使用以下命令在端口8081上运行安全服务器:
$ website/manage.py runserver_plus --cert cert 0.0.0.0:8081
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.messages',
'django.contrib.staticfiles',
'south',
'website.nucleus',
'website.blog',
'django_extensions',
'debug_toolbar',
'django_nose',
'django_coverage',
'tinymce',
'django_ztask',
'timezones',
'tracking',
'gunicorn',
'raven.contrib.django.raven_compat',
'social.apps.django_app.default',
'report_builder',
'bootstrapform',
'bootstrap3',
)
答案 0 :(得分:1)
默认情况下,Django使用http://
协议进行实时服务器测试,引自source code:
class LiveServerTestCase(TransactionTestCase):
static_handler = _StaticFilesHandler
@property
def live_server_url(self):
return 'http://%s:%s' % (
self.server_thread.host, self.server_thread.port)
由于您在测试中看到https://
协议,因此有些内容会将您的请求重定向到https
。检查您的MIDDLEWARE_CLASSES
设置。
例如,django-ssl-redirect
中间件可能是罪魁祸首。