【问题标题】:Django: How to test that data has loaded into a database?Django:如何测试数据是否已加载到数据库中?
【发布时间】:2015-04-16 09:38:45
【问题描述】:

我正在运行一个 Django 1.8 站点,它背后有一个大型数据库(它基本上是这个数据库上的一个 GUI)。我有一些管理命令可以将完整的数据集加载到数据库中。

这是一个相当复杂的过程(因为数据集很大,并且设置涉及创建物化视图等)。因此,一旦完成,我想测试数据是否已正确加载到数据库中。

例如,我可能会测试总共有正确的行数,并且各种示例查询给出了我期望的结果。

我的 Django 项目中是否有预期的地方可以执行此操作?

感觉与由夹具填充的单元测试(它是真实的大型数据集)或检查前端是否给出预期结果的功能测试有点不同。

任何建议将不胜感激。现在我的想法是我应该创建另一个管理命令来运行这些测试查询。

【问题讨论】:

  • 我在下面回答了你,但我还是觉得很奇怪,你多久需要将数据再次加载到数据库中?你是说上传多组数据还是同一组数据?

标签: django django-1.8


【解决方案1】:

为什么不在使用此测试数据填充数据库后(在管理任务、脚本等结束时)检查它?您可以将其实现为单独的 pytho 脚本/函数,并在需要时调用。

【讨论】:

    【解决方案2】:

    这样做的一种方法是将状态保存在数据库的表中,您可以创建一个表来保存在数据库上运行的作业,每个作业都有一个状态,这样在您的命令开始加载您可以在其中插入状态为started 的新行的数据,最后您可以将状态更改为finished,在代码的其他位置,您可以检查是否有started 作业数据库那么数据还没有完成。

    您需要注意的一个警告是,当加载数据时出现问题时,您可能需要将状态更改为failed,并存储一些有关它的日志,然后您需要检查它稍后。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多