Django测试 - 为TransactionTestCase使用单独的数据库

时间:2014-08-07 21:05:10

标签: python django testing django-testing django-database

我需要为并发请求测试Django应用程序行为。我需要在那之后测试数据库数据是否正确。作为一个结论,我需要测试和交易机制。所以让我们使用TransactionTestCase

我使用线程生成了对数据库的请求,并且由于自动切换到内存数据库类型(在运行测试时由Django用于SQLite),因此在线程中得到'DatabaseError:no such table:app_modelname exception'。

当然,我可以在'TEST_NAME'中为'default'键指定settings.DATABASES,测试将按预期传递。但这也用于所有测试,因此测试运行需要更长的时间。

  • 我想过自定义数据库路由器,但它似乎非常 因为我需要修补/模拟很多,所以这样做的hackish方式 要定义的模型中的属性是执行的 是TransactionTestCase还是不。
  • 还有使用的想法 override_settings但不幸的是它不起作用(见 issue了解详情)

如何为少数测试用例(TransactionTestCase)指定(或创建)内存数据库(在硬盘驱动器上),并让其他测试用例在内存中运行数据库?

任何想法,想法或代码示例将不胜感激。 谢谢!

0 个答案:

没有答案