为了进一步提高提测质量,了解到Django有自带的单元测试,一行简单的代码就能测试所有(或指定)app下tests.py文件中的测试逻辑。总体来说不难,但研究过程中也踩过无数个坑(在正文中慢慢道来),在此记录,欢迎大家一起讨论。
框架运行步骤
- 在终端执行命令,启动测试
- 框架首先初始化__init__以及类变量
- 根据生产数据库,拷贝一份test数据库(不会拷贝数据)
- 运行以test开头的方法(不以test开头的方法在执行的时候被忽略;以方法名顺序执行,而不是以排版顺序执行【eg: test_a --> test_b】)
- 删除test数据库
以下就根据各个步骤,进行分别的说明
启动
在项目所在目录下:
1、最简单的执行:
1)执行所有的tests:
python manage.py test
2)执行指定app的tests:
python manage.py test app_name
3)执行指定的测试单元
python manage.py test app_name.tests.TestCaseName
4)执行执行的方法
python manage.py test app_name.tests.TestCaseName.test_method_name
2、但这样执行后有个问题,每次在调用test时,都会重新创建新的test数据库,运行完成后又会删除,导致大量的资源和时间的浪费
果然强大的Django没有让人失望,可以在执行命令的时候添加参数:--keepdb,这样在第一次创建完test数据库后,就不会进行删除操作,节约大量的时间