python - celery 任务不会在 Django 测试中抛出异常

标签 python django testing celery celery-task

我的 Django 测试中包含几个 celery 任务。不幸的是,通过 .delay() 调用任务时不会抛出异常。我正在设置 CELERY_ALWAYS_EAGER为真。

tasks.py

import celeryapp as app

@app.task()
def exception_task():
    print 'CELERY_ALWAYS_EAGER:', app.conf['CELERY_ALWAYS_EAGER']
    raise Exception('foo')

测试.py

def test_exception_in_task(self):
        from tasks import exception_task
        exception_task.delay()

输出

CELERY_ALWAYS_EAGER: True
.
----------------------------------------------------------------------
Ran 1 test in 0.686s

当删除 .delay 时,测试退出并出现错误:

ERROR: test_exception_in_task
Exception: foo

版本

celery==3.1.4
Django==1.6.4

最佳答案

似乎我还必须设置 CELERY_EAGER_PROPAGATES_EXCEPTIONS为真。

关于python - celery 任务不会在 Django 测试中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27029745/

相关文章:

iphone - iPhone 样机网络服务

python - pytest:防止导入的自动使用的 session 装置多次执行

python - Pandas 跳过 x 刻度标签

Django 查询 - 在带注释的计数过滤器中获取父对象

mysql - 没有数据库关系的ForeignKey和ManyToMany

Django 无向图

javascript - 如何在 HTML 上的 javascript 上从 Flask 打印数组元素

python - 编写一个程序,计算在 12 个月内还清信用卡余额所需的最低固定每月还款额

python - 如何在 python 中读取 9 兆字节 block 中的文件?

java - 如何为下载管理器编写测试驱动的 Java 类?