跳转到主要内容

为多线程Django测试设置共享数据库连接。

项目描述

这个代理数据库后端旨在加快多线程测试设置的效率。

它允许这些设置(例如使用LiveServerTestCase)使用Django的标准TestCase - 每个测试都在自己的事务中运行 - 而不是需要在每个测试之间刷新整个数据库的更慢的TransactionTestCase

**不**推荐用于生产使用,仅用于加快测试设置。

此项目支持Django版本1.6和Python 2.7、3.2和3.3。

设置

首先,安装django-shareddb

$ pip install django-shareddb

然后,只需更新您的设置以使用其包装引擎

DATABASES = {
    'default': {
        'ENGINE': 'shareddb.backends.shareddb',
        'INNER_ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'test-dbsharing',
    }
}

由于更改这些设置非常频繁,django-shareddb还提供了一个简单的patch_databases函数

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'test-dbsharing',
    }
}

if os.environ['FAST_TESTS']:
    import shareddb
    DATABASES = shareddb.patch_databases(DATABASES)

设置准备就绪后,只需将Django的LiveServerTestCase调用替换为django-shareddb变体即可

from shareddb import testcases

class MyTests(testcases.LiveServerTestCase):
    def test_something(self):
        # Your test here

django-shareddb 的 LiveServerTestCase 简单来说就是 Django 版本的克隆,但它使用的是 django.test.TestCase 而不是 django.test.TransactionTestCase

测试

此库已在 sqlite 和 postgresql 上成功测试。

如果您想用其他数据库进行测试,请克隆它,然后修改 dev/settings.py 以适应您的设置,然后运行 ./manage.py test

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分布

django-shareddb-0.1.2.tar.gz (8.6 kB 查看散列值)

上传时间 源代码

由以下支持