2013-02-22 64 views
5

के लिए ककड़ी परीक्षण सूट बहुत धीमा है मेरे पास मेरे रेल ऐप के लिए एक ककड़ी परीक्षण सूट है, जिसमें लगभग 500 दृश्य हैं जिनमें उनके बीच लगभग 5000 कदम हैं।ट्रेविस

मैंने निम्नलिखित का उपयोग करके Travis-CI का उपयोग करने के लिए अपना जीथब रिपोजिटरी सेट अप किया है।

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 से अधिक मिनट लग गए, और इसलिए मारा गया था। क्या मैं बस उन परिदृश्यों के साथ अनुचित हूं, या क्या कुछ ऐसा है जो मैं निष्पादन को तेज करने के लिए कर सकता हूं?

संपादित करें: यदि यह महत्वपूर्ण है, तो मुझे यह स्पष्ट करना चाहिए कि मेरे परिदृश्य जीयूआई का परीक्षण नहीं करते हैं। वे कार्ड-गेम सर्वर के नियमों का परीक्षण कर रहे हैं, इसलिए वे सीधे मॉडल विधियों का आह्वान करते हैं।

उत्तर

5

मुझे this page of Travis' docs पर बहुत गुगलने के बाद समाधान मिला।

असल में, रनों को समानांतर करने के लिए इसकी अनुमति है (अनुशंसित, यहां तक ​​कि!)। निम्नलिखित .travis.yml के साथ, मैं छह समवर्ती नौकरियों के साथ समाप्त होता हूं, जिनमें से कोई भी 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