GiltLab CI/CD тесты Django не работают

Я хочу запустить несколько тестов на Gitlab с CI/CD с проектом Django. Тесты на моем локальном компьютере работают нормально, но мой конвейер тестирования работы всегда терпит неудачу с этими тестами. Я получаю SyntaxError.

Вот сбой сценария, который я получаю в конвейере, когда тесты не прошли :

Запуск с gitlab-runner 15.3.0~beta.42.gdb7789ca (db7789ca) на blue-3.shared.runners-manager.gitlab.com/default zxwgkjAP Подготовка исполнителя "docker+machine" 00:06 Использование исполнителя Docker с образом ruby:2.5 ... Извлечение образа docker ruby:2.5 ... Использование образа docker sha256:27d049ce98db4e55ddfaec6cd98c7c9cfd195bc7e994493776959db33522383b для ruby:2.5 с дайджестом ruby@sha256:ecc3e4f5da13d881a415c9692bb52d2b85b090f38f4ad99ae94f932b3598444b ... Подготовка среды 00:01 Running on runner-zxwgkjap-project-39068925-concurrent-0 via runner-zxwgkjap-shared-1662191947-427cb239... Получение исходного кода из репозитория Git 00:02 $ eval "$CI_PRE_CLONE_SCRIPT" Получение изменений с глубиной git, установленной на 20... Инициализирован пустой Git-репозиторий в /builds/XXX/Deploy_django_application_to_server/.git/ Создан свежий репозиторий. Проверяем 51c8456f как master... Пропускаем настройку подмодулей Git Выполнение этапа "step_script" сценария задания 00:01 Использование образа докера sha256:27d049ce98db4e55ddfaec6cd98c7c9cfd195bc7e994493776959db33522383b для ruby:2.5 с дайджестом ruby@sha256:ecc3e4f5da13d881a415c9692bb52d2b85b090f38f4ad99ae94f932b3598444b ... $ echo "Running unit tests..." Запуск модульных тестов... $ python manage.py test app_users.tests.CustomUserTests Файл "manage.py", строка 17 ) from exc ^ SyntaxError: недопустимый синтаксис Очистка переменных, основанных на директории проекта и файлах 00:00 ERROR: Job failed: exit code 1

* сценарий моего .gitlab-ci.yml таков:

stages: # Список этапов для заданий и порядок их выполнения

  • build
  • test
  • deploy

build-job: # Это задание выполняется на этапе сборки, который запускается первым. этап: сборка script: - echo "Compiling the code...". - apt update - echo y | apt install python3-pip - pip3 install --upgrade pip - pip3 install -r requirements.txt

django-tests: этап: тест сценарий: - echo "Running unit tests..." - python manage.py test app_users.tests.CustomUserTests - python manage.py test app_manage.tests.BasePageTestCase - python manage.py test app_manage.tests.TermesPageTestCase - python manage.py test app_manage.tests.IndexTestCase - python manage.py test app_manage.tests.SearchTestCase

lint-test-job: # Это задание также выполняется на этапе тестирования. stage: test # Оно может выполняться одновременно с unit-test-job (параллельно). script: - echo "Linting code... Это займет около 10 секунд". - echo "Проблем с линтингом не обнаружено."

* Я понимаю, что это происходит из моего файла manage.py строка 17, но это настройка по умолчанию в manage.py. Я переместил свой проект Django из Pycharm IDE прямо на GitLab. У меня есть база данных Postgresql для этого проекта. Я использую TestCase и SimpleTestCase в моем проекте Django.

Я застрял в GitLab CI /CD с моей тестовой работой:-(. спасибо!

Ваш образ докера использует python2.7 в качестве python исполняемого файла.

Django не совместим с python2.7 (см. здесь.

Вам следует либо использовать образ docker, используя python3 в качестве интерпретатора python по умолчанию, либо напрямую вызвать исполняемый файл python3.

    django-tests:
      stage: test
      script:
        - echo "Running unit tests..."
        - python3 manage.py test app_users.tests.CustomUserTests
        - python3 manage.py test app_manage.tests.BasePageTestCase
Вернуться на верх