簡體   English   中英

如何使用 PyCharm 在 django 測試中運行 celery

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM