我正在研究一個Django應用程序。我們使用芹菜隊列寫入我們的Mongo數據庫。我正在嘗試編寫一個功能測試(使用Selenium)來實現一個在芹菜中排隊的功能。我如何讓django芹菜寫入我的功能測試的測試數據庫?
的問題是,芹菜寫到主Mongo的數據庫,而不是測試數據庫。我如何設置我的功能測試來處理寫入測試數據庫的芹菜實例?
我們使用'django_nose.NoseTestSuiteRunner'
作爲我們TEST_RUNNER
。
UPDATE:
我一直無法弄清楚如何使用芹菜的另一個實例的測試,但我已經找到一種方法來繞過芹菜的功能測試。
在我settings.py
:
FUNC_TEST_COMMAND=['functional']
func_test_command = filter(lambda element: element in FUNC_TEST_COMMAND, sys.argv)
if len(func_test_command) > 0:
CELERY_ALWAYS_EAGER = True
這模仿的AsyncResult
的行爲,而不運行功能測試套件的時候通過消息隊列發送任何數據。 (更多信息請參見http://celery.readthedocs.org/en/2.4/configuration.html#celery-always-eager)
這種解決方案可能是不理想的功能性測試,因爲它減少了應用層中的一個。