我正在使用“manage.py test”以及使用“dumpdata”创建的 JSON 夹具
我的问题是夹具中的几个表非常大(例如,一个包含美国所有城市的名称),这使得运行测试非常慢。
由于程序从未修改过其中的几个表(例如 - 永远不需要修改城市名称),因此为每次测试运行创建和拆除这些表没有多大意义。
有没有更好的方法来使用这种数据测试这段代码?
我正在使用“manage.py test”以及使用“dumpdata”创建的 JSON 夹具
我的问题是夹具中的几个表非常大(例如,一个包含美国所有城市的名称),这使得运行测试非常慢。
由于程序从未修改过其中的几个表(例如 - 永远不需要修改城市名称),因此为每次测试运行创建和拆除这些表没有多大意义。
有没有更好的方法来使用这种数据测试这段代码?
这是我的解决方案:
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 导出的插入语句序列。读取 sql 语句比导入 JSON 或 YAML 固定装置快得多。这肯定不是最优雅的解决方案,但它确实有效。
根据在运行 Django 测试之前加载 SQL 转储中的第三个答案,您只需要将这个 sql 文件放在 app 目录内的 'sql' 目录中。这对我在执行“manage.py syncdb”时对生产数据库有用,但由于某种原因,在执行“manage.py test”时这些数据实际上并未导入到测试数据库中,即使“安装自定义 SQL xxxx.xxxx 模型'出现在输出中。所以,我在 setUp() 中编写了自己的代码