2015-05-26 29 views
2

我正在使用Postgres數據庫在Travis CI中測試示例Django應用程序。我爲在我的開發環境中成功通過的模型編寫了一些基本測試。當我的代碼推到特拉維斯出現以下錯誤:Django應用程序在Travis CI中失敗:服務器未在本地主機上運行

特拉維斯鏈接:https://travis-ci.org/Navajyoth/django-travis/jobs/64052563

github上鍊接: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. 

回答

0

構建是因爲你使用的是Postgres爲DB後端測試失敗你的應用。回溯顯示psycopg2無法在本地主機連接:

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不顯示任何錯誤或警告,並順利通過了tests.Only特拉維斯CI顯示了這個錯誤。 –

+0

這是因爲你的本地機器上安裝了postgresql服務器,而每當你啓動一個沒有安裝postgres服務器的版本時,travis會創建一個不同的虛擬機。 –

+0

@NavajyothMS:您是否閱讀過關於使用postgresql的travis文檔?你的問題的答案就在其中。在第一頁的頂部,標題爲「在您的構建中使用PostgreSQL」... – spectras

2

上述問題的主要問題。 (1)PostgreSQL不支持的版本 (2)從PostgreSQL插件中刪除補丁發行版本。

它解決了這一問題

相關問題