【问题标题】:Setting liveserver port when running tests in django在 django 中运行测试时设置 liveserver 端口
【发布时间】:2018-06-01 21:35:03
【问题描述】:

我正在将 django 用于 web 应用程序,并且我正在使用 docker 来部署它。我需要在装有硒的容器中对其进行测试。我正在使用硒网格进行测试。为了连接 docker 上的 liveserver,我需要转发一个特定的端口,但据我在 django 文档中阅读,LiveServerTestCase 使用端口 0,这意味着我每次运行测试时都是随机端口。由于 --liveserver 选项已被弃用,是否有任何其他方法来设置测试服务器的端口或更智能的方法来使用 selenium 对其进行测试?

提前致谢!

【问题讨论】:

    标签: django selenium docker django-testing django-tests


    【解决方案1】:

    如果有人想知道我是这样做的: 覆盖方法setUpClass,启动服务器运行所在的线程

    @classmethod
    def setUpClass(cls):
        cls.host = "example.com" # or ip
        cls.port = 12345
        super(ExampleTestCase, cls).setUpClass()
    

    【讨论】:

    • 您的方法有效(谢谢!),但您的代码具有误导性:您正在编写一个类方法,因此您获得了名为 cls 的类(而不是该类的实例)按照惯例。
    【解决方案2】:

    前面的所有答案都很好,但是设置端口的最简洁的方法如下:

    class MyTestCase(LiveServerTestCase):
        port = 12345
    

    【讨论】:

      【解决方案3】:

      根据Django 1.11 release notes,您应该在LiveServerTestCase 上设置port 属性:

      如果您需要将LiveServerTestCase 绑定到特定端口,请使用Django 1.11.2 中添加的port 属性。

      【讨论】:

        猜你喜欢
        • 2014-10-02
        • 1970-01-01
        • 2017-10-31
        • 1970-01-01
        • 1970-01-01
        • 2011-11-18
        • 1970-01-01
        • 1970-01-01
        • 2016-04-19
        相关资源
        最近更新 更多