python-将Django与Celery结合使用

我在尝试确定如何测试我的应用程序体系结构时遇到了一些麻烦.我已经完成了60%的网站,具有完整的单元测试范围(涵盖所有实用程序/ lib函数,作为简单函数的celery任务,等等).

当我尝试测试执行芹菜任务(延迟方法)的Django视图(普通函数)时,就会出现问题.

例:

def myview(request):
  ...
  mytask.delay(myval)
  ... 

在不真正生成新任务执行的情况下测试场景的正确方法应该是什么?

一种明显的方法是在每次任务延迟调用之前设置一个条件,仅当它不在测试环境中时才执行它,但它看起来确实很脏.

有小费吗?

解决方法:

使用CELERY_ALWAYS_EAGER设置进行测试运行.

它使函数立即被调用,而不是作为任务运行.

django设置示例片段:

if 'test' in sys.argv:
    CELERY_ALWAYS_EAGER = True
上一篇:javascript-无法使用量角器中的html屏幕截图生成报告


下一篇:javascript-使用量角器和角度带模式测试登录对话框时发生超时错误