CIF*_*CIF 23 django unit-testing
似乎"manage.py test"每次运行测试时都会创建测试数据库.有没有办法阻止每次运行测试时创建测试数据库,但只是截断数据(刷新)?
我的表几乎是大约40个表(即使是单个应用程序,也不是整个项目),每次运行测试时都会让我生病.
Kim*_*Kim 31
从Django 1.8开始,在调用manage.py时可以使用--keepdb标志
Django 1.8中的新增功能:您可以通过向test命令添加--keepdb标志来防止测试数据库被破坏.这将在运行之间保留测试数据库.如果数据库不存在,将首先创建它.还将应用任何迁移以使其保持最新.(https://docs.djangoproject.com/en/1.8/topics/testing/overview/#the-test-database)
所以你的电话看起来如下:
python manage.py test --keepdb
Run Code Online (Sandbox Code Playgroud)
或者使用简写-k它可能看起来像这样:
python manage.py test -k
Run Code Online (Sandbox Code Playgroud)
Tom*_*ski 13
根据您的需求,您有几个选择:
您可以编写自定义测试运行器或调整默认测试运行器:https://docs.djangoproject.com/en/1.6/topics/testing/advanced/#other-testing-frameworks
您可以使用SimpleTestCase
还有像django-test-utils这样的附加组件(虽然我不确定这个特定的是否适用于现代Django版本).
或者,为了加速一切,您可以使用SQLite的内存数据库或在RAM磁盘中创建测试数据库(如tmpfs或ramfs) - 实际上这与使用其他技术正交.
| 归档时间: |
|
| 查看次数: |
14842 次 |
| 最近记录: |