为postgres优化的django.test.testcase上的一个变体
django-fasttest的Python项目详细描述
这是一个替代的测试用例类,用于改进测试运行时间(我测量了 在我的一些项目上提高了两倍)。
你可以使用它并免费获得速度提升,只要你 项目满足以下条件:
- You use Django 1.3 (It might work with newer versions but I haven’t tried)
- Your tests use postgreSQL as a database backend, 8.0 or newer
- Your tests usa a single-database setup
- Your tests don’t make operations on the db connection that make some state change that is not reverted by a savepoint rollback.
如果最后一点对于一些测试是错误的,可以使用 django.test.test case对于这种情况,在大多数 他们。
如何使用
更改您的:
from django.test import TestCase
收件人:
from django_fasttest import TestCase
它是如何工作的
使它更快的是fixture解析/加载在每个测试用例中完成一次。 而不是每次测试一次。在同一个测试用例中的测试之间,数据库是 在加载 固定装置。
测试用例中的所有测试都使用相同的数据库连接(标准 testcase类关闭测试之间的连接),并在 同样的交易。如果在代码中使用事务,则 与您目前在django 1.3中所做的相同限制
如果您有许多使用 大型设备,如果这些测试分组在一个测试用例中。