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