8

Rails、postgres travis を動作させるのに問題があります。テストの実行が開始されると、データベース接続エラーが発生し続けます。

Errno::ECONNREFUSED: Connection refused - connect(2)

.travis.yml

language: ruby
rvm:
  - "1.9.3"
before_script:
  - cp config/database.travis.yml config/database.yml
  - psql -c 'create database myapp_test;' -U postgres
  - bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare --trace
script:
  - RAILS_ENV=test bundle exec rake spec

gemfile: Gemfile.ci

database.travis.yml

test:
  adapter: postgresql
  database: myapp_test
  username: postgres

別のデータベース構成を使用する必要があります。

私が間違っていることの手がかりはありますか?http://about.travis-ci.org/docs/user/database-setup/のドキュメントにほぼ正確に従いますが、データベース構成を適切な場所にコピーする必要があります。

4

3 に答える 3

2

なぜあなたは

bundle exec rake db:migrate
bundle exec rake db:test:prepare

db:test:prepare は、存在しない開発データベースにアクセスしようとします。また、rake db:migrate は Travis によって自動的に実行されます。

于 2013-10-15T03:30:57.953 に答える
1

問題は、travis で Elasticsearch サービスを有効にする必要があることでした。データベースにレコードを追加するにはインデックス作成が必要であり、拒否された接続は存在しない Elasticsearch サーバーへの接続でした。

于 2013-12-05T23:27:59.927 に答える
0

docに基づいて、最初に postgresql サービスをオンにする必要があります

services:
  - postgresql

(オプション) で DB タイプを指定します。

    env:
      - DB=pgsql

注:動作postgresqlpostgresません。使ってくださいpgsql!!!

これが私のために働いた完全なコードです:

.travis.yml

language: ruby

rvm:
  - 2.2

env:
  - DB=pgsql

services:
  - postgresql

script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec rake db:test:prepare
  - bundle exec rake

before_script:
  - cp config/database.yml.travis config/database.yml
  - psql -c 'create database courseselect_test;' -U postgres

config/database.yml.travis

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: courseselect_development

test:
  <<: *default
  database: courseselect_test

production:
  <<: *default
  database: courseselect_developement

ところで、database.yml同じ内容のファイルもありますconfig/database.yml.travis

于 2016-09-10T17:27:50.760 に答える