跳转到主要内容

对django.test.TestCase的优化,适用于PostgreSQL

项目描述

这是一个替代的TestCase类,用于提高测试运行时间(我在我的项目中对一些测试进行了2倍性能提升)。

您可以直接使用它并获得免费的速度提升,只要您的项目满足以下条件

  • 您使用Django 1.3(它可能适用于更新的版本,但我还没有尝试过)

  • 您的测试使用PostgreSQL作为数据库后端,8.0或更高版本

  • 您的测试使用单数据库设置

  • 您的测试不执行对数据库连接的操作,这些操作会导致某些状态变化,而这些变化不会被savepoint回滚所撤销。

如果最后一点对您的一些测试不成立,您可以使用常规的django.test.TestCase来处理这些情况,并在大多数情况下获得速度提升。

如何使用

更改您的

from django.test import TestCase

from django_fasttest import TestCase

它是如何工作的

使其更快的原因是,fixture解析/加载是在每个TestCase上执行一次,而不是在每个测试上执行一次。在同一个TestCase中的测试之间,数据库会回滚(使用pgsql savepoint)到加载fixture之后的点。

同一个testcase中的所有测试都使用相同的数据库连接(标准TestCase类在测试之间关闭连接),并在同一个事务中运行。如果您在代码中使用事务,您将具有与Django 1.3中当前相同的限制

如果您有很多使用大型fixture的testcase,并且这些测试被分组在TestCase中,速度优势将更加明显。

项目详情


下载文件

下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

django-fasttest-0.1.tar.gz (3.5 kB 查看哈希值)

上传时间 源代码

由以下支持