每次运行时不创建测试数据库的Django单元测试

标签 django unit-testing

每次运行测试时,似乎“manage.py test”都会创建测试数据库。有没有办法防止每次运行测试时创建测试数据库,但只是截断数据(刷新)?

我的表大约有 40 个表(即使是单个应用程序,而不是整个项目),每次运行测试时都让我感到恶心。

最佳答案

根据您的需求,您有几种选择:

  • 您可以编写自定义测试运行程序或调整默认运行程序:https://docs.djangoproject.com/en/1.6/topics/testing/advanced/#other-testing-frameworks
  • 您可以使用 SimpleTestCase
  • 还有类似 django-test-utils 的附加组件(尽管我不确定该特定版本是否适用于现代 Django 版本)。
  • 或者,为了加快速度,您可以使用 SQLite's in-memory database或创建您的 test database in RAM disk (like tmpfs or ramfs) - 事实上,这与使用其他技术是正交的。
  • 关于每次运行时不创建测试数据库的Django单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7197699/

    相关文章:

    python - 使用 django-polymorphic 创建许多对象

    c++ - 获取所有 boost 测试套件/测试用例

    python-3.x - 在模块导入期间调用的 python 模拟函数调用

    java - 适当使用 Mockito.reset()?

    python - django 链接到特定的管理 View

    python - 如何在 Django 数据库请求中进行数学筛选?

    python - Django 编辑授权用户配置文件

    python - Django 检查运行时间

    javascript - 如何对读取或写入文件的函数进行单元测试?

    Python:在unittest框架的测试用例中将一次性初始化放在哪里?