分隔测试数据库创建和测试运行的django测试运行程序

django_quick_test的Python项目详细描述


django快速测试

Django Quick Test是一个自定义的基于鼻子的测试运行器 分离测试和与测试相关的数据库操作。

通常运行此命令而不是默认的manage.py test 会给你10-15倍的提速这样你就可以跑了 您的测试套件只需几秒钟而不是几分钟。

安装

一。使用pip install django_quick_test安装包,或者您也可以 下载tarball并运行python setup.py install

  1. quick_test添加到settings.py中的已安装应用列表中
INSTALLED_APPS = ('quick_test')
  1. 在settings.py中添加测试数据库详细信息。
DATABASES = {
        'default':{
                'ENGINE':'',
},
        'test':{
                'ENGINE': '',
                'NAME': 'test_database',
        }
}
  1. 最后用这个替换默认的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+

鼻子

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JavaFX TableView更新单元格,不更新对象值   在扫描器中使用分隔符的java   java OkHttp 4.9.2,连接无法重用,导致端口耗尽   eclipse中的c JNI:运行Java代码   java是否在出厂的所有硬件设备中都有/mnt/sdcard/Android/data文件夹(或等效文件夹)?   Java,在eclipse中访问资源文件夹中的图像   java为什么Bluemix dashDB操作抛出SqlSyntaxErrorException,SQLCODE=1667?   JavaHtmlUnitWebClient。getPage不处理javascript   Google API认证的java问题   java如何将JSON数组反序列化为Apache beam PCollection<javaObject>   ServerSocket停止接收命令,java/安卓   来自Java类的安卓 Toast消息   java如何自动重新加载应用程序引擎开发服务器?   java是否可以尝试/捕获一些东西来检查是否抛出了异常?   java如何做到这一点当我按下load game时,它不仅会加载信息,还会将您带到游戏中?   Java选项Xmx代表什么?   Java映射,它在插入时打印值   设置“ulimit c unlimited”后,java无法生成系统核心转储