Сбой приложения Django в Travis CI: сервер не работает на локальном хосте

2

Я тестирую пример приложения Django в Travis CI, используя базу данных Postgres. Я написал несколько базовых тестов для моделей, успешно прошедших в моей среде разработки. Когда я нажимаю код на Travis, возникает следующая ошибка:

travis ссылка: https://travis-ci.org/Navajyoth/django-travis/jobs/64052563

github link: https://github.com/Navajyoth/django-travis

Traceback (most recent call last):

File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/commands/test.py", line 30, in run_from_argv
super(Command, self).run_from_argv(argv)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/commands/test.py", line 74, in execute
super(Command, self).execute(*args, **options)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
output = self.handle(*args, **options)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/commands/test.py", line 90, in handle
failures = test_runner.run_tests(test_labels)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/test/runner.py", line 210, in run_tests
old_config = self.setup_databases()
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/test/runner.py", line 166, in setup_databases
**kwargs
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/test/runner.py", line 370, in setup_databases
serialize=connection.settings_dict.get("TEST", {}).get("SERIALIZE", True),
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/creation.py", line 354, in create_test_db
self._create_test_db(verbosity, autoclobber, keepdb)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/creation.py", line 447, in _create_test_db
with self._nodb_connection.cursor() as cursor:
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/base.py", line 164, in cursor
cursor = self.make_cursor(self._cursor())
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/base.py", line 135, in _cursor
self.ensure_connection()
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/base.py", line 130, in ensure_connection
self.connect()
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/utils.py", line 97, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/base.py", line 130, in ensure_connection
self.connect()
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/base/base.py", line 119, in connect
self.connection = self.get_new_connection(conn_params)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 172, in get_new_connection
connection = Database.connect(**conn_params)
File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
django.db.utils.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused

Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?

The command "python manage.py test apps.account --settings=settings.dev" exited with 1.

Done. Your build exited with 1.
Теги:
travis-ci

2 ответа

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

Сборка не работает, потому что вы используете postgres в качестве db-сервера для тестирования вашего приложения. psycopg2 показывает, что psycopg2 не может подключиться на localhost:

File "/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect 
conn = _connect(dsn, connection_factory=connection_factory,async=async)
django.db.utils.OperationalError: could not connect to server:Connection refused
Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432?
could not connect to server: Connection refused'

Вы должны либо использовать sqlite как бэкэнд db, либо указать правильные параметры подключения к базе данных в ваших settings.dev. см. https://docs.djangoproject.com/en/1.8/topics/testing/overview/#the-test-database

  • 0
    В моей машине psycopg2 не показывает никаких ошибок или предупреждений и успешно прошел тесты. Только в Travis CI показывает эту ошибку.
  • 0
    Это потому, что на вашем локальном компьютере установлен сервер postgresql, а travis создает новую виртуальную машину каждый раз, когда вы запускаете сборку, на которой не установлен сервер postgres.
Показать ещё 2 комментария
2

Основные проблемы в вышеуказанной проблеме.

(1) Неподдерживаемая версия PostgreSQL (2) Удаление версии выпуска исправлений из дополнения PostgreSQL.

Он исправил проблему

Ещё вопросы

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