我在django上开发网站我认为通过使用烟雾覆盖测试方法可以找到大多数问题。但是(在大多数情况下)编写测试以检查每个应用程序,每个视图的响应代码是200,并且每个URL都是如此无聊(例如,当您开发几个并行的站点时)。我有一个问题:如何自动化这个过程,可能存在一些完整的解决方案来为django生成一些常见的测试。
谢谢!
答案 0 :(得分:0)
最佳做法:
升级到较新版本的Django时:
本地升级,
- 运行你的测试套件,
-fix bug,
-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 ...除block或assertRaises()来测试异常。
提供测试用例类
普通的Python单元测试类扩展了unittest.TestCase的基类。 Django提供了这个基类的一些扩展:
Django单元测试类的层次结构(TestCase子类)
Django单元测试类的层次结构
有关详细信息和更多示例,请访问https://docs.djangoproject.com/en/1.7/topics/testing/tools/