23

Rails プロジェクトで Travis Continuous Integration を使用しようとしています。ドキュメントには、SQLite3 の場合、テスト データベースを次のように構成する必要があると記載されています。

test:
  adapter: sqlite3
  database: ":memory:"
  timeout: 500

しかし、ローカル テスト用に既定の構成を維持したいと考えています。ローカル設定と Travis 要件の両方を維持することは可能ですか?

4

3 に答える 3

55

この問題に対する私の解決策は、ブログ投稿に完全に基づいていますが、いくつかの違いがあります。

  1. Travis CI 固有の設定config/database.travis.yml;
  2. cp config/database.travis.yml config/database.ymlの前のスクリプト セクションで.travis.yml
  3. config/database.ymlソースツリーにはありません。

両方のファイルの完全なリストを次に示します。

# .travis.yml
language: ruby
rvm:
  - 1.9.3
env:
  - DB=sqlite
  - DB=mysql
  - DB=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.travis.yml config/database.yml
  - mysql -e 'create database strano_test'
  - psql -c 'create database strano_test' -U postgres


# config/database.travis.yml
sqlite: &sqlite
  adapter: sqlite3
  database: db/<%= Rails.env %>.sqlite3

mysql: &mysql
  adapter: mysql2
  username: root
  password:
  database: strano_<%= Rails.env %>

postgresql: &postgresql
  adapter: postgresql
  username: postgres
  password:
  database: strano_<%= Rails.env %>
  min_messages: ERROR

defaults: &defaults
  pool: 5
  timeout: 5000
  host: localhost
  <<: *<%= ENV['DB'] || "postgresql" %>

development:
  <<: *defaults

test:
  <<: *defaults

production:
  <<: *defaults
于 2012-12-08T09:02:16.420 に答える
0

これを行う方法を説明するブログ投稿を書きました。

于 2012-04-09T03:44:09.067 に答える