2012-05-15 13 views
6

पहले से ही this question पर देखा गया है, और यह कि कम से कम दर्पण मैं वर्तमान में अपना पूरा सूट कैसे चलाता हूं।रेक के बिना एक पूर्ण मिनीटेस्ट सूट कैसे चलाएं?

साथ ही, मैं से सेट किया हुआ निम्नलिखित रेक कार्य:

Rake::TestTask.new do |t| 
    t.name = "spec:models" 
    t.libs << "test" 
    t.pattern = "spec/models/*_spec.rb" 
end 

लेकिन मैं नोटिस जब मैं इस का उपयोग कर time rake spec:models चलाने के लिए, कि यह 2.36 सेकंड में पूरा करता है। यदि मैं ruby /path/to/spec.rb का उपयोग कर उस निर्देशिका में सभी व्यक्तिगत परीक्षण चलाता हूं (सभी वर्तमान में ActiveRecord से अलग हैं - अभी तक कोई स्थिरता नहीं है, तो सुपर फास्ट), उनका संचयी कुल उपयोगकर्ता समय 2.36 सेकेंड है, फिर भी मैं यह भी ध्यान दे रहा हूं कि प्रत्येक फ़ाइल 0.4 प्रारंभ करने से निष्पादित करने के लिए उपयोगकर्ता सेकेंड, मिनीटेस्ट द्वारा रिपोर्ट किया गया वास्तविक "परीक्षण" समय बहुत तेज़ है (जैसे कि मेरा पूरा सूट, प्रतिस्थापन लोड करने के बाद, 0.15-आईएसएच सेकंड से कम में निष्पादित होना चाहिए, 2.36 सेकेंड नहीं)।

उदाहरण (एक युक्ति फ़ाइल के लिए):

Started 

11/11:   100% |======================================| Time: 00:00:00 

Finished in 0.02223s 
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips 
ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total 

मुझे लगता है कि रैक प्रत्येक परीक्षा के निष्पादन के बीच पुस्तकालयों को फिर से लोड कर रहा है, और कहा कि अतिरिक्त समय के लिए लेखांकन है। क्या वैसे भी मैं इसे सत्यापित कर सकता हूं, या रेक का उपयोग किए बिना अपना पूरा सूट चला सकता हूं?

Btw, जब मैं कहता हूँ "उपयोगकर्ता समय" पहले, मैं पहले नंबर मेरे गहरे लाल रंग का आदेश करने के लिए time prepending एक एकल परीक्षण फ़ाइल को चलाने के द्वारा outputted को time ruby /path/to/spec.rb जिक्र कर रहा हूँ, इसलिए = ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total

+0

क्या आपको कभी इसका समाधान मिला? –

उत्तर

1

यह किसी भी चलेंगे कल्पना निर्देशिका में परीक्षण और फ़ाइल नाम के अंत में एक _spec.rb साथ उपनिर्देशिका:

ruby -Itest spec/**/*_spec.rb 
+1

हम्म, यह केवल एक फ़ाइल चलाने के लिए प्रतीत होता है ('रूबी -इटेस्ट स्पेक/मॉडल/* _ spec.rb' के साथ मेरा अंतिम आउटपुट 5 परीक्षण पूरा करता है, जबकि 'रेक स्पेक: मॉडल' ऊपर चल रहा है 77 परीक्षण पूरा किए गए हैं)। उसके साथ क्या है? – neezer

+0

मैं जानना चाहता हूं कि क्यों मैथ्यू का सुझाव मेरे लिए काम नहीं करता है। –

+1

मुझे लगता है कि आपको शायद spec/**/_ spec.rb के आस-पास उद्धरण की आवश्यकता है या आपका खोल इसे विस्तारित करेगा, मुझे केवल एक फ़ाइल पर संदेह है, जब तक कि आप उस शेल का उपयोग नहीं कर रहे हैं जो उस नोटेशन को समझता है। – Ghoti

5

अपनी परियोजना के शीर्ष निर्देशिका में एक फ़ाइल spec.rb बनाएँ:

$:<<'spec' # add to load path 
files = Dir.glob('spec/**/*.rb') 
files.each{|file| require file.gsub(/^spec\/|.rb$/,'')} 

भागो यह:

ruby spec.rb 

यह आपके लिए काम करता है, तो आप spec.rb फ़ाइल के रूप में आप की तरह आदि नाम बदल सकते हैं, या एक बेहतर स्थान पर ले जाएं, या लोड पथ में परिवर्तन के रूप में आप की तरह,

संबंधित मुद्दे