我有一个 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',
)
最佳答案
默认情况下,Django 使用http://
协议(protocol)进行实时服务器测试,引用自 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://
协议(protocol),所以某些东西正在将您的请求重定向到 https
。检查你的MIDDLEWARE_CLASSES
环境。
例如,django-ssl-redirect
中间件可能是罪魁祸首。
关于python - 如何在没有 HTTPS 的情况下运行 Django 1.6 LiveServerTestCase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24918650/