使用 Django 1.11 从 Docker Selenium 运行 LiveServerTestCase

Viv*_*ier 4 python django selenium docker django-1.11

从 Django 1.11 开始,该选项--liveserver已从命令中删除manage.py test。

我使用此选项来允许从计算机的 IP 地址访问 liveserver,而不是localhost使用以下命令:

./manage.py test --liveserver=0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个选项已经消失了,我正在寻找一个新的解决方案,以允许我的 Docker Selenium 映像在测试期间访问我的 LiveServerTestCase。

Viv*_*ier 5

我通过超越StaticLiveServerTestCase并更改host属性找到了解决方案。

例子:

import socket

from django.contrib.staticfiles.testing import StaticLiveServerTestCase


class SeleniumTestCase(StaticLiveServerTestCase):

    @classmethod
    def setUpClass(cls):
        cls.host = socket.gethostbyname(socket.gethostname())
        super(SeleniumTestCase, cls).setUpClass()
Run Code Online (Sandbox Code Playgroud)

通过此解决方案,我的机器的 IP 被赋予了setUpClass,LiverServerTestCase因为默认值为localhost。

所以现在我的 liveserver 可以通过使用 IP 在我的本地主机之外访问。