我想在我的Django应用程序中为异步方法编写一些单元测试。实质上,当用户执行特定的POST时,此方法将启动,因此应用程序不会挂起。我想测试的是在运行时取消该请求的能力(在本例中是通过芹菜)。这样做的唯一问题是,因为Celery独立于Web应用程序运行,所以它将结果推送到真正的数据库,而不是由Django Unit Tests创建的测试数据库。所以我想知道的是,我将如何能够做到像针对生产数据库的Django单元测试查询
Results.objects.get(id=some_id)
并告诉它指向实际的数据库。我已经尝试了以下内容:
Results.objects.using('default').get(id=some_id)
想,也许这将解决这个问题,但没有找到结果(因为它是推动信息到实际的数据库再次,不是测试DB) 。我做了一些搜索,发现这个链接: How do I run a unit test against the production database?但这里的答案说“你不应该对生产进行测试”。我完全明白这不是好的做法,但我需要击中实时数据库。一切都在虚拟机上运行,因此无论如何它都是测试数据库。有谁知道一种方法来打真正的数据库?
感谢,
你是如何开始你的芹菜工人? – dm03514