首页 > 解决方案 > 用于在 Django 中测试配置的 Celery

问题描述

我有一个文件 celery_test.py,它应该在 Django 中加载测试(config.test)的配置设置,但它加载了 Development(config.development)的配置

from __future__ import absolute_import
import os
from django.conf import settings
from celery import Celery

os.environ.setdefault(
"DJANGO_SETTINGS_MODULE", "config.testing"
)


test_app = Celery('test')
test_app.config_from_object('django.conf:settings')
test_app.autodiscover_tasks()

print("Testing celery")
print(settings)

@test_app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))

当我打印设置时,它打印config.development而不是config.testing. 谁能帮我在这里如何加载config.testing

标签: pythondjangocelery

解决方案


假设您正在使用pytest,您可以将其放入您的pytest.ini文件中:

[pytest]
DJANGO_SETTINGS_MODULE = celery_test.py

或使用:

DJANGO_SETTINGS_MODULE=celery_test.py pytest

对于单线。


推荐阅读