前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django小技巧12: 禁用单元测试的Migrations

Django小技巧12: 禁用单元测试的Migrations

作者头像
用户1416054
发布2018-12-04 16:58:27
1.1K0
发布2018-12-04 16:58:27
举报
文章被收录于专栏:JackeyGao的博客JackeyGao的博客

翻译整理自: simpleisbetterthancomplex.com

Migrations 无疑是 Django 的一大特色功能,当它在单元测试的时候, 却会加长整个单元测试的时间。特别是你的migrations history特别的大.本篇是加快单元测试的小技巧:

为单元测试单独创建一个 settings

tests_settings.py

Python

代码语言:javascript
复制
from settings import *

# Custom settings goes here

然后在执行测试的时候,这样做:

Bash

代码语言:javascript
复制
python manage.py test --settings=myproject.tests_settings --verbosity=1

Django >= 1.9

使用MIGRATION_MODULES设置项, 用于定义migration模块的自定义名称, 如果为None则是忽略此模块.

Python

代码语言:javascript
复制
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

如果是1.9之前的版本,可以用下面的方法。实际上, 我现在依然在使用它, 因为这种方法不需要指定各个模块.

Python

代码语言:javascript
复制
from settings import *

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

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

MIGRATION_MODULES = DisableMigrations()

更旧的版本 (使用: South)

Raw

代码语言:javascript
复制
SOUTH_TESTS_MIGRATE = False

这个可以写在生产的settings.py中.

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django >= 1.9
  • Django < 1.9
  • 更旧的版本 (使用: South)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com