orangleliu 笔记本

lzz的编程之旅,技术,思考,分享,happy

Django 禁用Migrations 给 Unit Test 提速

文章地址:https://simpleisbetterthancomplex.com/tips/2016/08/19/django-tip-12-disabling-migrations-to-speed-up-unit-tests.html

Django 框架提供了 test 接口,很简单,自从1.7版本之后添加了 migrations 特性,默认的 test 命令会在每次执行的时候进行 migrations, 导致单元测试很慢啊。。咋办,禁用啊。

一般情况下都会为 test 单独设置一个 settings 配置

比如 tests_settings.py

from settings import *

# Custom settings goes here

然后这样执行测试

python manage.py test --settings=myproject.tests_settings --verbosity=1

Django >=1.8 参数方式

使用keepdb 选项 the test databases

When using the SQLite database engine the tests will by default use an in-memory database

 python manage.py test --keepdb

Django >= 1.9

1.9 中有这么一个配置项目 MIGRATION_MODULES文档

from settings import *

MIGRATION_MODULES = {
    'auth': None,
    'contenttypes': None,
    'default': None,
    'sessions': None,

    'core': None,
    'profiles': None,
    'snippets': None,
    'scaffold_templates': None,
}

Django < 1.9

from settings import *

class DisableMigrations(object):
    def __contains__(self, item):
        return True

    def __getitem__(self, item):
        return 'notmigrations'

MIGRATION_MODULES = DisableMigrations()

Older Django Versions (using South)

SOUTH_TESTS_MIGRATE = False
阅读更多
版权声明:本文为orangleliu (http://blog.csdn.net/orangleliu/)原创文章,自由传播,文章转载请声明, 多谢。 https://blog.csdn.net/lzz957748332/article/details/72912539
个人分类: Django 测试 test
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Django 禁用Migrations 给 Unit Test 提速

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭