Django:如何测试数据是否已加载到数据库中?

Django: How to test that data has loaded into a database?

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

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

例如,我可能会测试总行数是否正确,以及各种示例查询是否给出了我期望的结果。

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

感觉与由固定装置填充的单元测试(它是真实的大型数据集)或检查前端是否提供预期结果的功能测试有点不同。

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

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

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

这里需要注意的一点是,当加载数据时出现问题,您可能需要将状态更改为 failed,并存储一些相关日志,然后您将需要稍后查看。