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 :)