如何使用多个django unitests数据库?

时间:2016-11-22 09:39:59

标签: python django postgresql sqlite unit-testing

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

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

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

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

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

  • 数据库不可知测试(sqlite3)
  • Postgres测试

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

apply(df, 1, anyNA)

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

tests/ integration/ postgres/ 运行所有django app测试 和python manage.py test运行postgres集成测试。当然,这只是解决问题的众多方法之一。