5
我想在我的Django测试期间同步调用芹菜任务,而无需运行芹菜工作者。为了达到这个目的,我在我的settings.py中指定了CELERY_ALWAYS_EAGER=True
,但它似乎不起作用。所以,我决定申请装饰以override_settings特定的测试看起来像这样无法在Django测试中同步调用芹菜任务
@override_settings(CELERY_ALWAYS_EAGER=True, BROKER_BACKEND='memory',
CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
def test_foo(self):
...
不幸的是,这个测试仍然在我的芹菜工人调用任务。我可以错过什么?具体来说,我使用Django 1.10和Celery 4.0.0。
如果芹菜相关设置一些在内存中的对象持久化的芹菜应用程序在启动时你的测试跑步者,压倒他们可能没有任何效果。你有没有试过用不同的设置文件来启动你的测试跑步者? – schwobaseggl
这似乎是已知的问题。有关该主题的讨论(https://groups.google.com/forum/#!topic/celery-users/1WmrfFZ9nHs)。他们在运行时改变'celery.Celery()。conf'对象,而不是典型的'django.conf' – schwobaseggl