分隔测试数据库创建和测试运行的django测试运行程序
django_quick_test的Python项目详细描述
django快速测试
Django Quick Test是一个自定义的基于鼻子的测试运行器 分离测试和与测试相关的数据库操作。
通常运行此命令而不是默认的manage.py test 会给你10-15倍的提速这样你就可以跑了 您的测试套件只需几秒钟而不是几分钟。
安装
一。使用pip install django_quick_test安装包,或者您也可以 下载tarball并运行python setup.py install
- 将quick_test添加到settings.py中的已安装应用列表中
INSTALLED_APPS = ('quick_test')
- 在settings.py中添加测试数据库详细信息。
DATABASES = { 'default':{ 'ENGINE':'', }, 'test':{ 'ENGINE': '', 'NAME': 'test_database', } }
- 最后用这个替换默认的Django测试运行程序在settings.py:
TEST_RUNNER = 'quick_test.testrunner.NoseTestSuiteRunner'
用法
django快速测试假设您已经手动创建了测试数据库,并且 已加载所需的测试数据(装置)
使用命令之前必须运行的命令
python manage.py syncdb --database=test python manage.py migrate --database=test
最后用
python manage.py quick_test
附加说明
如果您使用的是默认的Django TestCase类 必须重写执行的_pre_setup方法 当您调用类时自动执行如果你不覆盖它 quick_test命令仍然有效,但是您的测试数据 将丢失。即使数据库中没有任何设备 覆盖这个方法会给你额外的速度提升。
from django.test import TestCase class SimpleTest(TestCase) def _pre_setup(self): # this method flushes the database and installs # the fixtures defined in the fixtures=[] list # we are doing everything manually, so we don't # really need it # these are the results I get with 1 test before and after ovewriting the method # Before -> Ran 1 test in 2.336s # After -> Ran 1 test in 0.004s pass def test_basic_addition(self): self.assertEqual(1 + 1, 2)
要求
姜戈1.2+
鼻子