当前位置:  开发笔记 > 后端 > 正文

如何对无法使用CELERY_ALWAYS_EAGER = True运行的任务进行单元测试?

如何解决《如何对无法使用CELERY_ALWAYS_EAGER=True运行的任务进行单元测试?》经验,为你挑选了0个好方法。

在我的django项目中,我有一些celery任务应该在一定时间后执行(在测试模式下,等待时间设置为几秒钟).执行这些任务后,它们将更改某些实体状态.我已经编写了测试,以便在安排任务后立即检查这些状态.

我尝试用CELERY_ALWAYS_EAGER = True我的django单元测试来测试芹菜任务.但是,使用该设置,它等待在本地执行任务并返回结果.所以我之前的测试代码因此而中断.

让我举一个更具体的例子.假设我有一个电子商务平台的订单系统.当买家下订单时,会创建芹菜任务以检查订单是否在24小时内成功付款.如果没有付款,则应取消订单.在测试模式下,我可以倒计时为20秒而不是24小时.但是使用django单元测试,如果我使用CELERY_ALWAYS_EAGER = True,则立即执行此celery任务,以便始终取消订单.如何测试在时间限制(20s)内成功付款的情况?

有谁知道如何测试不能立即执行的芹菜任务?

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有