Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么django可以在不运行服务器的情况下进行测试?_Python_Django_Testing - Fatal编程技术网

Python 为什么django可以在不运行服务器的情况下进行测试?

Python 为什么django可以在不运行服务器的情况下进行测试?,python,django,testing,Python,Django,Testing,我想测试演示应用程序主页的可达性 所以我这样做: 来自django.test的导入测试用例 类TestHomePageView(TestCase): def测试可到达的主页(自): response=self.client.get(“/home/”) self.assertEqual(response.status_代码,200) 以及views.py 从django.exe导入渲染 def主视图(请求): 返回呈现(请求'home.html',{}) home.html是一个简单的例子:

我想测试演示应用程序主页的可达性

所以我这样做:

来自django.test的
导入测试用例
类TestHomePageView(TestCase):
def测试可到达的主页(自):
response=self.client.get(“/home/”)
self.assertEqual(response.status_代码,200)
以及
views.py

从django.exe导入渲染
def主视图(请求):
返回呈现(请求'home.html',{})
home.html
是一个简单的例子:


家
嗨,circleci和django
url.py

来自django.contrib导入管理
从django.url导入路径
从演示应用程序视图导入主页视图
URL模式=[
路径('admin/',admin.site.url),
路径(“主视图/”,主视图)
]
这是一个非常简单的演示应用程序

我好奇的是“为什么我可以在不运行django服务器的情况下测试状态代码?” 只需简单地
$python manage.py测试
,无需
$python manage.py运行服务器

并得到测试结果:

$ python manage.py test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.011s

OK
Destroying test database for alias 'default'...

欢迎您提出任何想法或建议,谢谢。

测试可以让您更加自信地修改代码:测试正常,您可以修改代码,如果测试仍然正常,那么您就不会破坏任何东西

因此,您希望能够经常、快速地执行测试,以便更轻松、更自信地修改代码

Framworks和语言提供了尽可能轻的测试手段,因此测试更灵活,运行更快

另外,您希望测试您的代码,而不是其他代码,如果您的测试通过http运行,那么您还需要测试您的http服务器

此外,HTTP是一种传输协议,我们不需要传输协议来为函数提供参数,以检查其行为是否符合预期


总而言之,您希望能够经常运行测试,速度越快,您运行测试的能力就越强,另外,您只想测试代码,而不想测试Web服务器的代码。

因为测试软件完成了安装和拆卸所需的全部工作,django如何能够运行服务器并测试然后如此快速地关闭服务器?或者它只是模拟整个过程?忘了我的问题,我找到了答案,谢谢。我还将链接更详细地解释Django测试客户端。同意,我的答案是非常通用的,不是针对Django的!明白你的意思,但我想知道django做的更具体的方式。django模拟环境吗?或者,它可以只处理服务器,测试然后关闭服务器?另一个问题是,其他框架可以在不运行服务器的情况下进行测试吗?针对django的链接文档提到了这一点:测试客户端不需要运行Web服务器。事实上,它运行得很好,根本没有运行Web服务器!这是因为它避免了HTTP的开销,并直接处理Django框架。这有助于使单元测试快速运行。