5

Railsアプリ用のキュウリテストスイートがあり、その間に約5000ステップの約500のシナリオが含まれています。

次を使用して、Travis-CIを使用するようにgithubリポジトリを設定しました.travis.yml

language: ruby
rvm:
  - "1.9.2"
script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec cucumber -f progress -r features features/cards/base_game
  - bundle exec cucumber -f progress -r features features/cards/basic_cards
  - bundle exec cucumber -f progress -r features features/cards/intrigue
  - bundle exec cucumber -f progress -r features features/cards/seaside
  - bundle exec cucumber -f progress -r features features/cards/prosperity
  - bundle exec cucumber -f progress -r features features/cards/interactions
before_script:
  - cp config/database.travis.yml config/database.yml
  - psql -c 'create database dominion_test' -U postgres

bundle exec cucumberすべてのケースを実行するために実行した場合、Travisがメモリ不足をスローしていたため、キュウリの実行を分割しました。

ただし、最近のプッシュでTravisタスクが生成され、すべてのテストを実行するのに50分以上かかったため、強制終了されました。私はその多くのシナリオに不合理なだけですか、それとも実行をスピードアップするために何かできることはありますか?

編集:重要な場合は、シナリオがGUIをテストしていないことを明確にする必要があります。彼らはカードゲームサーバーのルールをテストしているので、モデルメソッドを直接呼び出します。

4

1 に答える 1

5

たくさんグーグルした後、Travisのドキュメントのこのページで解決策を見つけました。

基本的に、実行を並列化することは許可されています(推奨されます!)。次のよう.travis.ymlにすると、6つの同時ジョブが発生しますが、いずれも15分以上かかることはなく、すべてが完了するまで実行されます。

language: ruby
rvm:
  - "1.9.2"
env:
  - CARD_SET=base_game
  - CARD_SET=basic_cards
  - CARD_SET=intrigue
  - CARD_SET=seaside
  - CARD_SET=prosperity
  - CARD_SET=interactions
script:
  - RAILS_ENV=test bundle exec rake db:migrate --trace
  - bundle exec cucumber -f progress -r features features/cards/$CARD_SET
before_script:
  - cp config/database.travis.yml config/database.yml
  - psql -c 'create database dominion_test' -U postgres
于 2013-02-28T09:28:05.507 に答える