【发布时间】:2011-02-17 13:16:08
【问题描述】:
我的 Django 测试运行得很慢,但这不是测试的错。
目前,整个过程需要 14 秒,但其中只有 0.1 秒在运行测试。前几秒是创建表和索引,其余的是应用项目的许多fixtures。
解决这个问题的最佳方法是什么?我认为有一种方法可以指定在每个测试中加载哪个fixtures,但我需要它们中的大多数来完成大多数测试......
我认为可行的解决方案是,如果测试在每次运行后都没有删除表,这样就不需要在每次运行测试时创建和填充数据库。大多数测试甚至不写入数据库。
优化 Django 测试的fixture-loading 部分的最佳方法是什么?
谢谢!
(我使用的是nose,但除此之外只是普通的Django 和sqlite)
编辑:我应该提到我正在使用内存中的 sqlite 数据库。我正在寻找的 - 具体来说 - 是对测试的夹具加载部分的优化。
【问题讨论】:
-
您可以尝试将夹具加载包装在事务中以加快速度。如果您将 MySQL 与 InnoDB 表一起使用,那应该会有很大的不同。
-
我已经在使用内存中的 sqlite 数据库了,我不认为可以进一步优化吗?
标签: python django testing performance fixtures