我需要为并发请求测试Django应用程序行为。我需要在那之后测试数据库数据是否正确。作为一个结论,我需要测试和交易机制。所以让我们使用TransactionTestCase
。
我使用线程生成了对数据库的请求,并且由于自动切换到内存数据库类型(在运行测试时由Django用于SQLite),因此在线程中得到'DatabaseError:no such table:app_modelname exception'。
当然,我可以在'TEST_NAME'
中为'default'
键指定settings.DATABASES
,测试将按预期传递。但这也用于所有测试,因此测试运行需要更长的时间。
TransactionTestCase
还是不。 override_settings
但不幸的是它不起作用(见
issue了解详情)如何为少数测试用例(TransactionTestCase
)指定(或创建)不内存数据库(在硬盘驱动器上),并让其他测试用例在内存中运行数据库?
任何想法,想法或代码示例将不胜感激。 谢谢!