2014-10-01 113 views
3

我在嘗試計算如何測試我的應用程序體系結構時遇到了一些麻煩。我已經完成了我網站的60%,完整的單元測試覆蓋率(覆蓋所有實用程序/庫函數,作爲簡單函數的芹菜任務等)。測試Django加上芹菜

當我嘗試測試執行芹菜任務(延遲方法)的django視圖(普通函數)時,問題就出現了。

例子:

def myview(request): 
    ... 
    mytask.delay(myval) 
    ... 

應該是什麼正確的方式來測試場景並沒有真正產生了新的任務執行?

顯而易見的方法是在每個任務延遲調用之前設置一個條件,只有當它不在測試環境中時才執行它,但它看起來很髒。

任何提示?

回答

3

使用CELERY_ALWAYS_EAGER測試運行的設置。

它使函數立即被調用,而不是將其作爲任務運行。


例Django配置片段:

if 'test' in sys.argv: 
    CELERY_ALWAYS_EAGER = True 
+0

好的,謝謝你這麼多。這正是我需要的 – Isaac 2014-10-01 14:35:01