django芹菜单元用pycharm进行测试'没有名为芹菜的模块'

时间:2016-09-20 07:42:25

标签: django unit-testing celery pycharm

当我的目标是单个函数时,我的测试工作正常(请参阅图像中的“目标”字段):

questionator.test_mturk_views.TestReport.submit

但是,当我指定我的目标在我的提问者应用程序中包含所有测试时:

questionator

我收到此错误:

  

错误ImportError:导入测试模块失败:   src.questionator.test_mturk_views Traceback(最近一次调用最后一次):
  在_find_tests中输入文件“C:\ Python27 \ Lib \ unittest \ _ loader.py”,第254行       module = self._get_module_from_name(name)文件“C:\ Python27 \ Lib \ unittest \ loader.py”,第232行,in   _get_module_from_name       导入(名称)文件“C:\ Users \ Andy \ questionator_app \ src__init __。py”,第5行,在       来自.celery导入应用程序as celery_app #noqa ImportError:没有名为celery的模块

请注意,我的测试通过“环境变量”包含我的设置(请参见图片中的内容):

DJANGO_SETTINGS_MODULE=questionator_app.settings.development;PYTHONUNBUFFERED=1

芹菜documentation提到“使用自定义测试运行器来测试芹菜”,但这是在现已解散的djcelery包中。我做了虽然复制/粘贴/调整this mentioned test runner并按照描述使用它,但我得到了同样的错误。

不幸的是,使用CELERY_ALWAYS_EAGER也无效http://docs.celeryproject.org/en/latest/configuration.html#celery-always-eager

我很感激一些指导。最好的祝福, 安迪。

enter image description here

1 个答案:

答案 0 :(得分:0)

有同样的问题(很可能是我),

我跟随官方tutorial让芹菜在我的项目中工作。他们建议如下: enter image description here

只是将上一次导入显式解决了我的问题:

from taskapp.celery import app as celery_app  # noqa

我会看看我是否可以轻推Celery的创作者来更新他们的教程(pull request)。