测试Django模型而不运行迁移或syncdb

时间:2014-11-21 16:08:36

标签: django unit-testing migration django-1.7

编辑:下面描述的问题不是由于工作流程不好造成的,而是在加载灯具时出现的明显错误。我的一个应用程序有夹具initial_data.json。测试框架在执行必要的迁移之前加载夹具。 (FWIW,我正在使用Django 1.7 + python3.4)这个问题被描述为here。 (我的解决方法:将夹具重命名为data.json。)

我将保留其余部分的完整内容,以防将来帮助其他人。

我正在尝试使用Django的内置测试来在开发过程中快速测试我的Django模型。不幸的是,当我尝试这个时,我收到错误:

psycopg2.ProgrammingError: relation "app_relation" does not exist

我想象的工作流程是

  1. 定义一些模型字段(可能跨应用程序)
  2. 使用Django测试的测试逻辑
  3. 修复逻辑错误,修改字段并迭代此过程。
  4. 这样,我可以逐步构建模型,而无需创建大量迁移。迁移给我带来了麻烦,因为我经常添加,删除和重命名字段或模型,因为我正在验证我的逻辑。

    例如,我的模型有人口统计字段,我不确定是否应保留male_under_18字段或将其拆分为male_under_5male_5_to_9,{{1} }和male_10_to_15粒度。

    在进行迁移之前,使用male_16_to_18 验证决定肯定会很不错。

    我的理解是Django的tests.py创建了一个独立于开发数据库的数据库,因此不要求我的开发数据库与我的模型定义的当前模式匹配。

    如果上面的工作流程不可能(或彻头彻尾的愚蠢),我会采取其他方式来解决我的问题。

    相关问题:django unit tests without a db。 (不起作用,因为我想测试数据库!)

0 个答案:

没有答案