Django 单元测试用法及 Fixtures 用法
Django的单元测试用法:
Django的单元测试常用操作。
具体的操作方法:
遇到的问题:
前文注意事项中的第三点提到,测试数据的问题。为了减少创建和删除数据库的时间,需要在命令中加入: --keepdb 以保留每次的测试的数据库。虽然保留了数据库,但是测试中产生的数据,还是会在测试结束时,销毁的。
Django单元测试的注意事项:
1、对于每一个测试方法都会将setUp()和tearDown()方法执行一遍
2、每一个测试(Clas下的每个测试方法))会单独新建一个测试数据库来进行数据库的操作方面的测试,默认在测试完成后销毁。
3、在测试方法中对数据库进行增删操作,最后都会被清除。如果migrations文件过多,则会耗费大量时间
Django单元测试的Fixtures用法
在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。
基础配置
在settings.py 中配置如下内容:(如果你想要单独指定Fixture的目录)
补充:
Django默认情况下,会在每个应用程序内的目录中查找fixtures。您可以将FIXTURE_DIRS设置为Django应查找的其他目录的列表。
在要测试的app中,增加目录
fixtures
在新增的
fixtures
目录下,新建文件myapp.json
,文件名自己定,后缀必须是.json
。
配置myapp.json
文件中内容格式如下,实际使用时,要删除掉实际情况,使用数据,并删除掉注释,如果需要多条数据,可以多写几个{}的内容:
配置tests.py
下边就可以运行你的单元测试了
提醒:
如果你配置了测试的Models 的Signals,这部分的代码也会被执行
参考内容:
本文首发于BigYoung小站(http://www.bigyoung.cn)
版权声明: 本文为 InfoQ 作者【Young先生】的原创文章。
原文链接:【http://xie.infoq.cn/article/6c543c117fcf23839051d48c4】。未经作者许可,禁止转载。
评论