2013-02-22 5 views
5

私は約500ステップのシナリオを持ち、私のレールアプリ用のキュウリテストスイートを持っています。キュウリのテストスイートがTravisのために遅すぎる

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を実行した場合トラヴィスがメモリ不足に投げていたように私はキュウリの実行を分割しています。

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

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

答えて

5

多くのグーグルの後、this page of Travis' docsに解決策が見つかりました。

基本的には、実行を並列化することは許可されています(お勧めします)。次の.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 
関連する問題