python - 使用 Django/Python 获得最大测试覆盖率的最佳实践?

标签 python django unit-testing testing code-coverage

我的测试严重不足,我对它们没有很大的信心。使用 Django/Python 获得最大测试覆盖率的最佳实践是什么?我一直在看FreshenLettuce ,看起来很有希望,但我不能将它们用于所有的事情,可以吗?我正在寻求有关如何通过测试构建工作流/项目的建议,以便在生产环境中部署新代码时充满信心。

最佳答案

  1. 停止编码。

  2. 为您的应用程序应该做的事情编写测试。

首先,使用内置的 Django 测试。在您的 models.py 中将模型测试编写为 TestCase 类。

现在就这样做。在进一步阅读之前。现在添加创建、修改和检索模型对象的 django.test.TestCase 类。确保为您定义的每个属性、属性或额外方法都有一个测试方法。

我会等你完成的。


模型测试完成了吗?很好。

现在在每个应用程序中创建一个 tests.py 文件。每一个。全部为空。

在每个 tests.py 文件中为每个表单创建 django.test.TestCase 类。

现在就做。创建好的和坏的表格。为每个单独的字段验证问题创建表单。

不要创建坏数据的所有可能排列。每个单独的验证规则只有一个测试用例。

现在就这样做。在进一步阅读之前。为每个表单添加 django.test.TestCase 类到 tests.py。

我会等你完成的。


现在,您必须测试每个 View 功能。他们也进入了 tests.py 文件。每个 View 函数至少有两个测试用例,可能更多,具体取决于您使用的各种装饰器。

如果一个 View 函数需要登录,你有两种情况:登录和未登录。

如果一个 View 函数需要权限,你至少有三种情况:未登录、错误用户登录、正确用户登录。

现在,您只需要确保 View 函数做了一些事情并返回正确的 HTML 模板和任何正确的数据。不要发疯。您只想确保所有 View 函数实际上都返回预期的页面。仅此而已。

现在就这样做。在进一步阅读之前。为每个 View 函数添加 django.test.TestCase 类到 tests.py。

我会等你完成的。


这些是您应该在编写任何应用程序代码之前首先编写的测试。

这将为您提供一个测试基线,以确认您的应用程序将最小化运行。

当你完成了这些,你可以开始考虑单元测试来反射(reflect)你的应用程序背后的真正目的和值(value)。

关于python - 使用 Django/Python 获得最大测试覆盖率的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5901139/

相关文章:

python - 请求包的 urllib3 部分?

python - Django : Fetch XML, 中的 urllib2/pycurl 检查 HTTP 状态,检查 HTTPS 连接

python - UPDATE不使用模型保存方法

python - Nginx、Uwsgi、Django 问题

针对潜在无限循环的 Python 单元测试

node.js - 开 Jest : child_process. exec.mockImplementation 不是一个函数

javascript - Jest.js 错误 : "Received: serializes to the same string"

python - 重用 psycopg2.execute 中的参数

Python OpenGL 如何正确渲染离屏

python - 从数据框中的组中删除在特定列中具有最小值的行