首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一起使用django-nose和django-celery --单元测试

一起使用django-nose和django-celery --单元测试
EN

Stack Overflow用户
提问于 2013-03-23 10:38:45
回答 3查看 1K关注 0票数 9

我有一个使用django-nose的django项目。我想将django-celery添加到项目中。我使用单元测试。在我的settings.py文件中,django-nose和django-celery都需要一个TEST_RUNNER设置。具体地说:

代码语言:javascript
复制
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

对于django-nose和:

代码语言:javascript
复制
TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner'

给姜戈-芹菜。

我应该如何处理才能同时使用这两个包?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-07 02:42:42

我发现处理这个问题的最好方法是跳过芹菜测试运行器。我只需使用@override_settings(CELERY_ALWAYS_EAGER=True)来装饰我的芹菜-使用测试,一切都会得到很好的测试。

票数 6
EN

Stack Overflow用户

发布于 2013-04-15 09:48:54

如果您能够将测试隔离为celery和非依赖于celery的功能,则可以在调用celery任务的测试类上尝试overriding settings

代码语言:javascript
复制
from django.test.utils import override_settings

@override_settings(TEST_RUNNER='djcelery.contrib.test_runner.CeleryTestSuiteRunner')
class AsyncTestCase(TestCase):
     def test_async(self):
         self.assertEquals(add.delay(4,4), 8)

而在settings.py中将NoseTestRunner设置为默认值

票数 4
EN

Stack Overflow用户

发布于 2015-12-15 14:46:14

你可以子类化芹菜跑步者和鼻子跑步者,然后你可以得到所有它们的良好侧面。

代码语言:javascript
复制
from django_nose import NoseTestSuiteRunner
from djcelery.contrib.test_runner import CeleryTestSuiteRunner

class TestRunner(CeleryTestSuiteRunner, NoseTestSuiteRunner):
    pass

然后在您的设置中:

代码语言:javascript
复制
TEST_RUNNER = '<package to>.TestRunner'

它的工作原理:

代码语言:javascript
复制
help(TestRunner)

你会得到:

代码语言:javascript
复制
|  Method resolution order:
|      TestRunner
|      djcelery.contrib.test_runner.CeleryTestSuiteRunner
|      django_nose.runner.NoseTestSuiteRunner
|      django_nose.runner.BasicNoseRunner
|      django_nose.runner.BaseRunner
|      django.test.runner.DiscoverRunner
|      builtins.object

测试CeleryTestRunner什么也不做,只是设置了一些配置,然后调用super().setup_test_environment()。然后超级进程将在该链中查找setup_test_environment()。

观看来自Raymond Hettinger的视频:超级被认为是超级(here)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15582770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档