【问题标题】:How to use mutiple databases for django unitests?如何使用多个数据库进行 django 单元测试?
【发布时间】:2017-04-05 22:05:57
【问题描述】:

我们知道如何为 django 测试用例和开发服务器使用不同的数据库。如果没有请咨询this

现在我的问题是? 如果我有一些可以在 sqlite 中运行的测试用例,但有一些需要 postgres sql 的其他测试用例(特殊)怎么办? 我想为那些必须在 postgres 上测试的特殊测试用例指定它。

现在的问题是为什么我在 postgres 中测试所有这些? 在 postgres 中的测试比 sqlite3 慢,我想有经验的程序员都知道这一点。

那么有没有办法在单元测试中使用不同的数据库?

我找到了名为 Django 模板测试数据库(django-ttdb)的 this 包,但我猜它支持 Django 1.7。

提前致谢。

【问题讨论】:

    标签: python django postgresql sqlite unit-testing


    【解决方案1】:

    最简单的方法可能是将您的测试分成两种不同的类型:

    • 与数据库无关的测试 (sqlite3)
    • Postgres 测试

    对于 postgres 特定的测试,您可以将它们隔离在自己的目录中,(我喜欢使用顶级目录)

    tests/
      integration/
        postgres/
    

    接下来,应该将数据库连接设置暴露给环境,或者作为环境变量,或者通过单独的设置文件。然后将有两个单独的命令来运行每种不同类型的测试:

    python manage.py test 运行所有 django 应用程序测试 和 python manage.py test tests.integration.postgres 运行你的 postgres 集成测试。当然,这只是处理您的问题的众多方法中的一种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 2019-04-01
      相关资源
      最近更新 更多