Невозможно запустить тест django в CircleCI
Я реализую CircleCI для одного из проектов. Проект построен на Django 3.2.
Мои тестовые примеры работают правильно, когда я запускаю их с помощью python manage.py test blog, когда я запускаю то же самое в CircleCI, он возвращает
======================================================================
ERROR: project.blog (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: project.blog
Traceback (most recent call last):
File "/usr/local/lib/python3.8/unittest/loader.py", line 470, in _find_test_path
package = self._get_module_from_name(name)
File "/usr/local/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
ModuleNotFoundError: No module named 'project.blog'
Вот моя конфигурация CircleCI
version: 2
jobs:
build:
docker:
- image: circleci/python:3.8
steps:
- checkout
- run:
name: Installing dependencies
command: |
python3 -m venv venv
. venv/bin/activate
pip3 install -r requirements.txt
- run:
name: Running migrations
command: |
. venv/bin/activate
python manage.py migrate --skip-checks
- run:
name: Running tests
command: |
. venv/bin/activate
python manage.py test blog
Я понимаю, что CircelCI клонирует проект в папке project. Я что-то упускаю в конфигурации?
CircleCI по умолчанию проверяет нашу кодовую базу на /home/circleci/project, проблема была в том, что в списке установленных_приложений у меня было приложение с именем project. (которое конфликтовало)
Когда CircleCI запускался python manage.py test модуль unittest осуществлял поиск приложения blog внутри django app project.
Я исправил эту проблему, изменив путь по умолчанию, по которому CircleCI размещает кодовую базу. Вот обновленный конфиг CircleCI
version: 2
jobs:
build:
working_directory: ~/platform #Here is the answer
docker:
- image: circleci/python:3.8
steps:
- checkout:
path: ~/platform #Here is the answer
- run:
name: Install dependencies
command: |
ls -l
python3 -m venv venv
. venv/bin/activate
pip3 install -r requirements.txt
- run:
name: Run migrations
command: |
. venv/bin/activate
python manage.py migrate --skip-checks
- run:
name: Run tests
command: |
. venv/bin/activate
python manage.py test website