Как настроить Django для запуска тестов на PostgreSQL на Travis CI?

1

Я не могу понять, как интегрировать мой текущий проект Django для запуска тестов на Travis CI. Прямо сейчас у меня PostgreSQL настроен для запуска на моем локальном компьютере при выполнении модульных тестов.

language: python
python:
  - 3.4.1
addons:
  postgresql: "9.3"
before_script:
- psql -U postgres -c "create extension postgis"
  - psql -c 'create database travis_ci_test;' -U postgres
install:
  - pip install -r requirements.txt
  - pip install coveralls
script:
  coverage run --source=calculator manage.py test
after_success:
  coveralls

Тревис говорит мне:

$ coverage run --source=calculator manage.py test
Creating test database for alias 'default'...
Got an error creating the test database: permission denied to create database
Type 'yes' if you would like to try deleting the test database 'test_dk5va592r6j0v', or 'no' to cancel: 

И сейчас у меня есть хакерская настройка, чтобы иметь дело с переключением между локальным db и моим героем db:

import dj_database_url

if DEBUG:
    DATABASE_URL = 'postgres://localhost/storage'
else:
    DATABASE_URL = 'postgres://somerealurl'
DATABASES = {'default': dj_database_url.config(default=DATABASE_URL)}

У кого-нибудь есть хороший способ исправить мою проблему? Кажется, мне нужно создать PostgreSQL на Travis, а затем запустить мои тесты, чтобы я мог получить покрытие. Отладка также должна быть установлена на значение False, когда код также проверяется.

Если бы вы могли опубликовать рабочую настройку Travis, DJango и PSQL, которая была бы потрясающей!

Теги:
heroku
travis-ci

1 ответ

1
Лучший ответ

То, что я сделал и было успешным для меня, - это установить DATABASE_URL как переменную среды и просто использовать
DATABASES = {'default': dj_database_url.config(default=DATABASE_URL)} в коде, который будет изящно переключаться с локального на производство.

Вот работающий конфигуратор travis, использующий Postgres, Django и развернутый на Heroku.

https://github.com/kevgathuku/sermonbuddy/blob/master/.travis.yml

Ещё вопросы

Сообщество Overcoder
Наверх
Меню