我有一个名为MyApp的测试Django项目,在端口8083上运行WSGI。当我转到http://myapp:8083
时,我看到标准的Django“它正在工作”页面。我在Django中使用selenium绑定编写了一个功能测试来启动浏览器并加载上面提到的页面。但是,当我运行测试时,我收到一条错误消息“地址已在使用中”。所以我使用另一个端口运行测试:python manage.py test --liveserver=myapp:8084
这将打开浏览器,但显示“找不到页面”错误而不是默认的Django页面。我究竟做错了什么?有任何想法吗?谢谢!
test.py文件内容:
class CoreSeleniumTestCase(LiveServerTestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
super(CoreSeleniumTestCase, cls).setUpClass()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
super(CoreSeleniumTestCase, cls).tearDownClass()
def testIndexShouldLoad(self):
self.driver.get('%s%s' % (self.live_server_url, '/'))
答案 0 :(得分:1)
我终于找到了问题。在某些时候,Django默认从settings.py文件中删除了MEDIA_ROOT。事实证明,此设置必须在文件中才能使Selenium测试正常工作。一旦我重新引入设置并为其分配了一个目录,Selenium测试就开始按预期工作了。