如何尝试运行django服务器

问题描述 投票:2回答:2

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

python manage.py runserver

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

注意:我在linux上运行django。

python django
2个回答
4
投票

对于在测试中检查的情况,您也可以使用django.test.testcases.LiveServerTestCase。该课程将在后台启动您的应用程序。

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


2
投票

在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"

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

© www.soinside.com 2019 - 2024. All rights reserved.