当尝试使用以下代码测试管理员登录时,我发现self.live_server_url返回类似http://localhost:39346
的内容,其中每次运行时端口号都不同。
from django.test import LiveServerTestCase
from selenium import webdriver
class AdminLoginTests(LiveServerTestCase):
def setUp(self):
self.selenium = webdriver.Firefox()
super(AdminLoginTests, self).setUp()
def tearDown(self):
self.selenium.quit()
super(AdminLoginTests, self).tearDown()
def test_admin_login(self):
# ...
print('url: %s' %self.live_server_url)
如何获取正在运行的服务器的正确端口号8000
?假设我通过python manage.py runserver 0.0.0.0:8000
运行服务器。谢谢!
答案 0 :(得分:1)
LiveServerTestCase故意生成一个带有该端口的新实例。这样您就可以测试生产环境而无需关闭生产服务器(默认情况下在8000上运行)。
但是,如果要更改运行调试的端口,可以初始化为其他端口号。
class TempTest(LiveServerTestCase):
def __init__(self):
super(TempTest, self).__init__()
self.port = 8910
def setUp(self)
# ....
答案 1 :(得分:0)
这是在Django 1.11.26版本下对我有用的
class TempTest(LiveServerTestCase):
port = 8888
host = "0.0.0.0" # If you want your test server to be public