我正在 django 上开发网站我认为使用烟雾覆盖测试方法可能会发现大多数问题。但是(在大多数情况下)编写测试来检查每个应用程序、每个视图和每个 url 的响应代码都是 200 非常无聊(例如,当您并行开发几个站点时)。我有一个问题:我怎样才能自动化这个过程,可能存在一些完整的解决方案来为 django 生成一些常见的测试。
谢谢!
我正在 django 上开发网站我认为使用烟雾覆盖测试方法可能会发现大多数问题。但是(在大多数情况下)编写测试来检查每个应用程序、每个视图和每个 url 的响应代码都是 200 非常无聊(例如,当您并行开发几个站点时)。我有一个问题:我怎样才能自动化这个过程,可能存在一些完整的解决方案来为 django 生成一些常见的测试。
谢谢!
最佳实践:
升级到更新版本的 Django 时:
- 本地升级,
-运行你的测试套件,
-修复错误,
-PUSH 到 repo 和 staging,然后
- 在发布代码之前再次进行测试。
https://realpython.com/blog/python/testing-in-django-part-1-best-practices-and-examples/
Django 提供了一小部分在编写测试时派上用场的工具。
测试客户端 测试客户端是一个 Python 类,它充当虚拟 Web 浏览器,允许您测试视图并以编程方式与 Django 驱动的应用程序交互。您可以使用测试客户端做的一些事情是:
概述和一个简单的例子
要使用测试客户端,请实例化 django.test.Client 并检索网页:
from django.test import Client
c = Client()
response = c.post('/login/', {'username': 'john', 'password': 'smith'})
response.status_code
200
response = c.get('/customer/details/')
response.content
'<!DOCTYPE html...'
正如这个例子所暗示的,您可以在 Python 交互式解释器的会话中实例化 Client。
测试响应 get() 和 post() 方法都返回一个 Response 对象。这个 Response 对象与 Django 视图返回的 HttpResponse 对象不同;测试响应对象有一些对测试代码验证有用的附加数据。
发出请求 使用 django.test.Client 类发出请求。
class Client(enforce_csrf_checks=False, **defaults)
异常 如果您将测试客户端指向引发异常的视图,则该异常将在测试用例中可见。然后,您可以使用标准的 try ... except 块或 assertRaises() 来测试异常。
提供的测试用例类 普通 Python 单元测试类扩展了 unittest.TestCase 的基类。Django 提供了这个基类的一些扩展: Django 单元测试类的层次结构(TestCase 子类) Django 单元测试类的层次结构
有关详细信息和更多示例,请访问https://docs.djangoproject.com/en/1.7/topics/testing/tools/