在django中用芹菜依赖和django-nose构建测试用例

时间:2014-03-29 12:36:19

标签: django celery django-nose

我一直在尝试为我的django项目做的事情构建测试用例。在项目中,很少有芹菜任务在信号时执行(pre_save,post_delete..etc)

此外,我一直在使用django-nose作为我的test_runner,所以为了让它一起工作,我做了自己的跑步者并继承了这两个课程

# -*- coding: utf-8 -*-
from django_nose import NoseTestSuiteRunner
from djcelery.contrib.test_runner import CeleryTestSuiteRunner

class MixedInTestRunner(NoseTestSuiteRunner, CeleryTestSuiteRunner):
    pass

我还更新了我的TEST_RUNNER以使用上面的类,下面是我的celery.py conf,它在我的settings.py中导入

from __future__ import absolute_import, unicode_literals

from celery import Celery

app = Celery('proj',
             broker='amqp://')

# Optional configuration, see the application user guide.
app.conf.update(
    CELERY_TASK_RESULT_EXPIRES=3600,
    CELERY_TASK_SERIALIZER='json',
    CELERY_ACCEPT_CONTENT=['json'],
    CELERY_RESULT_SERIALIZER='json',
    CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
)

if __name__ == '__main__':
    app.start()

此时有什么奇怪的,当我为特定应用程序运行测试用例时,它成功执行而没有任何问题

./manage.py test --nologcapture -s messaging # this works

但是当我运行所有应用程序时,我得到的所有任务都有错误,这些任务具有来自芹菜任务的返回值的依赖性,即使result.successful()总是返回false

./manage.py test --nologcapture -s # this fails 

0 个答案:

没有答案