Django Pytest выдает Kombu Connection refused[111] при использовании rabbitmq и celery

В настоящее время я использую pytest, django и rabbitmq-server с celery для фоновых задач. Однако я заметил, что когда я запускаю pytest без запуска сервера на моей локальной машине, это приводит к длинному потоку исключений, который не показывает

E: Kombu Connection refused[111]

Я запускаю тест для метода модели save(), который в свою очередь запускает фоновую задачу celery

Я хочу спросить, есть ли способ запустить rabbitmq-сервер в pytest, не запуская его на локальной машине, чтобы мои тестовые примеры прошли

Это также влияет на мой github CI/CD, поскольку я понятия не имею, как запустить службу rabbitmq image в файле github-actions.yml

Ваша помощь приветствуется

При желании вы можете просмотреть журналы ниже

Хорошо, я разобрался, поскольку rabbitmq-server - это сервер, он должен быть включен, точно так же, как postgresql (серверные базы данных) должен быть запущен перед запуском pytest

Что касается аспекта CI с действиями github, проблема заключалась в том, что я не использовал динамический порт для образа rabbitmq. поэтому я изменил

запускается на: ubuntu-latest

services: rabbitmq: image: rabbitmq:3.8 env: RABBITMQ_DEFAULT_USER: guest RABBITMQ_DEFAULT_PASS: guest порты: - 5672

to

   runs-on: ubuntu-latest

    services:
      rabbitmq:
        image: rabbitmq:3.8
        env:
          RABBITMQ_DEFAULT_USER: guest
          RABBITMQ_DEFAULT_PASS: guest
        ports: ["5762:5762"]

теперь отлично проходит на github и больше нет отказа в подключении Kombu :)

Вернуться на верх