我正在使用“manage.py test”以及使用'dumpdata'创建的JSON夹具
我的问题是灯具中的几个表非常大(例如一个包含美国所有城市名称的表),这使得运行测试非常慢。
看到这些表中的几个从未被程序修改过(例如 - 城市名称永远不需要修改),为每次测试运行创建和拆除这些表都没有多大意义。
使用这种数据测试此代码有更好的方法吗?
答案 0 :(得分:1)
这是我的解决方案:
class xxxx(TestCase):
def setUp(self):
import _mysql
db=_mysql.connect('xxxx', 'xxxx', 'xxxx', "test_xxxxxxx")
db.query(open('sql/xxxxxx.sql').read())
sql文件是我使用phpMyAdmin导出的一系列insert语句。读取sql语句比导入JSON或YAML fixture更快。这肯定不是最优雅的解决方案,但它确实有效。
根据Loading SQL dump before running Django tests中的第三个答案,您只需将此sql文件放在app目录下的'sql'目录中即可。在执行'manage.py syncdb'时,这对我来说对于生产数据库很有用,但由于某种原因,在执行'manage.py test'时,这些数据实际上并没有导入到测试数据库中,即使是“安装自定义SQL”行xxxx.xxxx模型'出现在输出中。所以,我在setUp()
中编写了自己的代码答案 1 :(得分:0)