Django应用程序在Travis CI中失败:服务器未在本地主机上运行

Django应用程序在Travis CI中失败:服务器未在本地主机上运行,django,postgresql,travis-ci,Django,Postgresql,Travis Ci,我正在使用Postgres数据库测试Travis CI中的Django示例应用程序。我为在我的开发环境中成功通过的模型编写了一些基本测试。当我将代码推送到Travis时,会发生以下错误: 特拉维斯链接: github链接: 回溯(最近一次呼叫最后一次): 文件“manage.py”,第10行,在 从命令行(sys.argv)执行命令 文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/man

我正在使用Postgres数据库测试Travis CI中的Django示例应用程序。我为在我的开发环境中成功通过的模型编写了一些基本测试。当我将代码推送到Travis时,会发生以下错误:

特拉维斯链接:

github链接:

回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/_-init___;.py”,第338行,从命令行执行
utility.execute()
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/core/management/_init__.py”,第330行,执行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/commands/test.py”,第30行,从_argv运行
超级(命令,自我)。从_argv(argv)运行_
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/django/core/management/base.py”,第390行,运行于
self.execute(*args,**cmd_选项)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/core/management/commands/test.py”,执行中的第74行
super(命令,self).execute(*args,**选项)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/core/management/base.py”,第441行,在execute中
输出=self.handle(*args,**选项)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/core/management/commands/test.py”,第90行,在handle中
失败=测试运行程序。运行测试(测试标签)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/test/runner.py”,第210行,运行测试中
old\u config=self.setup\u databases()
setup_数据库中的文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/test/runner.py”,第166行
**夸尔斯
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/test/runner.py”,第370行,位于setup_数据库中
serialize=connection.settings_dict.get(“TEST”,{}).get(“serialize”,True),
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/creation.py”,第354行,在create\u test\u db中
self.\u创建\u测试\u数据库(冗余、自动浏览、keepdb)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/creation.py”,第447行,位于创建测试数据库中
使用self.\u nodb\u connection.cursor()作为光标:
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/base.py”,光标中的第164行
cursor=self.make\u cursor(self.\u cursor())
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/base.py”,第135行,在光标处
self.sure_连接()
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/base.py”,第130行,确保连接
self.connect()
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/utils.py”,第97行,在退出时__
6.重新播放(dj_exc_类型、dj_exc_值、回溯)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/base.py”,第130行,确保连接
self.connect()
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/base/base.py”,第119行,在connect中
self.connection=self.get_new_connection(连接参数)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site packages/django/db/backends/postgresql\u psycopg2/base.py”,第172行,在get\u new\u connection中
连接=数据库。连接(**连接参数)
文件“/home/travis/virtualenv/python2.7.9/lib/python2.7/site-packages/psycopg2/_-init__;.py”,第164行,在connect中
连接=连接(dsn,连接工厂=连接工厂,异步=异步)
django.db.utils.OperationalError:无法连接到服务器:连接被拒绝
服务器是否在主机“localhost”(::1)上运行并接受
端口5432上的TCP/IP连接?
无法连接到服务器:连接被拒绝
服务器是否在主机“localhost”(127.0.0.1)上运行并接受
端口5432上的TCP/IP连接?
命令“python manage.py test apps.account--settings=settings.dev”以1退出。
完成。您的生成以1退出。

生成失败,因为您正在使用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后端,或者指定正确的数据库连接
设置.dev中的参数。请参阅上述问题中的主要问题

(1) 不支持的PostgreSQL版本 (2) 正在从PostgreSQL加载项中删除修补程序版本


它修复了我的机器中的问题

,psycopg2没有显示任何错误或警告,并且成功通过了测试。只有Travis CI中显示了此错误。这是因为您的本地机器中安装了postgresql server,而Travis每次启动没有postgres server的构建时都会创建不同的虚拟机已安装。@navajythms:您是否阅读了有关使用postgresql的travis文档?你问题的答案就在里面。在第一页的顶部,标题是“在您的构建中使用PostgreSQL”…@spectras:感谢您的建议。现在它工作得非常好。
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`