代码之家  ›  专栏  ›  技术社区  ›  Joozty

如何尝试运行django服务器

  •  2
  • Joozty  · 技术社区  · 6 年前

    我正在尝试编写测试来测试django应用程序是否可以运行。我只想尝试运行django服务器,如果一切正常,则返回代码0,否则返回另一个代码。

    python manage.py runserver
    

    这个命令运行无限循环,我需要通过 CTRL+C . 这就是问题所在。我只想运行几秒钟。

    注: 我在linux上运行django。

    2 回复  |  直到 6 年前
        1
  •  4
  •   J. Bakker    6 年前

    对于要在测试中检查的案例,您也可以使用 django.test.testcases.LiveServerTestCase . 这个类将在后台启动您的应用程序。

    这比仅仅运行Django 5秒钟更稳定,因为无论出于何种原因,启动应用程序可能需要5秒钟以上。

        2
  •  2
  •   willeM_ Van Onsem    6 年前

    在Linux系统上,您可以使用 timeout 为此。例如:

    $ timeout 5 python manage.py runserver
    

    它将运行该命令5秒钟,然后终止程序。如果命令超时(我们在这里需要),退出代码是124。如果命令超时(这通常是因为发生错误)-退出代码是内部命令的退出代码(因此 python manage.py runserver ).

    所以我们可以像这样工作:

    #!/bin/bash
    
    timeout 5 python manage.py runserver
    
    # return non-zero exit code in case exit code of timeout is not 124
    test "$?" -eq "124"
    

    请注意,有更好的方法来测试应用程序,而通过简单地检查服务器是否运行来测试应用程序并不是详尽无遗的:从用户获取页面的那一刻起,很多事情都可能出错。