[英]How to run celery in django tests using PyCharm
我正在嘗試測試我的 Django 應用程序功能。
我的一些任務正在使用 Celery。
如何使用 PyCharm 在我的測試環境中運行 celery?
要在不測試 celery 的東西的情況下進行單元測試,您可能需要模擬您的 @shared_task 裝飾器
from unittest import mock
@mock.patch('celery.shared_task', lambda *args, **kwargs: lambda func: func)
def test_celery_unit()
from tasks import mytask
result = mytask() # could be call just as a function
我假設您正在使用 shared_task 裝飾器並將任務作為 function_name.delay()
這可以通過添加一個條件來測試,如果在本地運行(或通過測試)運行任務並在生產中使用 celery。 這也允許人們在不使用 celery 的情況下在本地運行服務器,這樣可以更容易調試和維護。
PRODUCTION = False
if PRODUCTION:
some_task.delay()
else:
some_task()
還可以創建一個做同樣事情的裝飾器,它更漂亮,但維護起來可能更復雜?
使用模擬庫將解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.