2012-11-15 13 views
14

स्पिन के साथ रनिंग गार्ड मेरे परीक्षण को तेजी से रखने के लिए बहुत अच्छा काम करता है, सिवाय इसके कि जब संपत्ति प्रासंगिक होती है और संकलन की आवश्यकता होती है। ऐसा लगता है कि परीक्षण वातावरण जब भी मैं उनमें कुछ बदलता हूं तो सभी संपत्तियों को पुन: संकलित करता है। मैंने तैनाती स्क्रिप्ट के उदाहरण देखे हैं जो केवल उन संपत्तियों को पुन: संकलित करते हैं जिनके स्रोत बदल गए हैं। क्या यह परीक्षण के लिए भी किया जा सकता है? या परीक्षण के लिए परिसंपत्ति संकलन को तेज करने का एक और तरीका है?परीक्षणों के लिए संपत्ति संकलन को कैसे बढ़ाया जाए?

मैं एक विशिष्ट सेटअप का उपयोग कर रहा हूं, इसलिए यदि आवश्यक हो तो मुझे अधिक जानकारी प्रदान करने में खुशी होगी, हालांकि मुझे लगता है कि इस प्रश्न का उत्तर सिर्फ मेरे मुकाबले कई मामलों में उपयोग किया जा सकता है।

+0

यह एक अच्छा सवाल है! इसलिए मैं इसे वोट दे रहा हूं क्योंकि मुझे परिसंपत्तियों को पूर्व-संकलित करने के समय के समान समय से पीड़ित था। हालांकि, मेरे ज्ञान तक संपत्तियों को पूर्व-संकलित करने की गति पर बहुत अधिक उपलब्ध नहीं है! शुभकामनाएं – TheMouseMan

+1

मैं आमतौर पर सूट चलाने से पहले संपत्तियों को प्रीकंपाइल करता हूं। यदि आप रेल 3.2 चला रहे हैं तो https://github.com/ndbroadbent/turbo-sprockets-rails3 है। इसके साथ पूर्ण संकलन बहुत तेज होगा। यदि आप सूट लंबे समय से चल रहे हैं और/या सीआई पर चलते हैं और आप एक पूर्ण प्रीकंपाइल करते हैं तो मेरे पास एक एस 3 समाधान भी उपलब्ध है। मुझे बताएं कि आप किस रेल के संस्करण चला रहे हैं – mnelson

+0

यह सब वादा करता है। मैं अभी रेल 3.2.8 पर हूं, जल्द ही 3.2.9 पर अपडेट हो जाएगा। मुझे आपके एस 3 समाधान में बहुत दिलचस्पी है, क्योंकि मैं गार्ड के साथ अपने परीक्षण चला रहा हूं (मुझे लगता है कि यह लंबे समय से चलने का मतलब है), इसलिए प्रीकंपिलिंग पर्याप्त नहीं होगी। –

उत्तर

1

आप दो महीने पहले लिखित this article पर एक नज़र डाल सकते हैं। यह बल्कि जटिल कार्य लगता है। नाथन ने gem that precompiles केवल संपत्तियों में किए गए परिवर्तनों को लिखा है। इसका विकास और परीक्षण env में उपयोग किया जा सकता है।

संपादित करें: यहां हमारे परीक्षणों को तेज करने से संबंधित another article है। जेएस परीक्षण के बारे में इसका एक अलग दृष्टिकोण है।

+0

सुझावों की तरह, लेकिन यह वास्तव में मेरे परीक्षणों को तेज़ी से नहीं लग रहा है, मुख्य रूप से ऐसा लगता है कि परीक्षण वातावरण को हमेशा शुरू होने पर संपत्तियों को संकलित करना पड़ता है। मुझे लगता है कि आदर्श रूप से परीक्षण को तब तक इंतजार करना चाहिए जब तक संकलन नहीं किया जाता है। –

+0

यह उल्लेखनीय है कि विषय के लिए समर्पित एक विशेष साइट है। मैंने [रूबी 5] (http://ruby5.envylabs.com/) से सुना है और इसे कहा जाता है (आप विश्वास नहीं करेंगे) [fastrailstests.com] (http://www.fastrailstests.com)। जैसा कि माइकल जैक्सन ने एक बार कहा है: "आप अकेले नहीं हैं"। –

+0

वैसे उस साइट में कोई जानकारी नहीं है, और मैं सिर्फ अपने ईमेल एड्रेस नहीं दे रहा हूं, मुझे पर्याप्त स्पैम मिल रहा है। मैं अपनी समस्या का स्पष्ट उत्तर ढूंढ रहा हूं;) और 'माइकल! = माइकल', लेकिन किंग ने निश्चित रूप से कहा कि;) –

0

उदाहरण के लिए आप अपने आवेदन जेएस और सीएसएस फ़ाइलों में require_tree जोड़ने से बच सकते हैं।

इसके अतिरिक्त, उचित फ़ाइल एक्सटेंशन का उपयोग करें - यदि कुछ जेएस है - तो इसे सामान्य जेएस फाइलों की तरह नाम दें। सीएसएस और एसएसएस के लिए वही।

आप स्थानीय रूप से भी precompile संपत्ति यह आदेश rake assets:precompile द्वारा विकास पर स्थानीय रूप से तैयार की है करने के लिए कर सकते हैं - लेकिन इसे हटाने के लिए परीक्षण संपत्ति में परिवर्तन अगली बार देखने के लिए के बाद (यह विक्रेता फ़ोल्डर में उत्पन्न किया जा सकता)

+0

ये सच हैं लेकिन वे कुमारा के जवाब में भी थे। मुझे संपत्ति पता है: प्रीकंपाइल, परीक्षण के लिए कुछ ऐसा ही अच्छा होगा, क्योंकि अब कुछ परीक्षण विफल हो जाते हैं क्योंकि उन्हें संपत्तियों को संकलित करने की प्रतीक्षा करनी पड़ती है। –

-2

मैं कर रहा हूँ याद सुनिश्चित करें, लेकिन आप कोशिश कर सकते हैं:

application.js फ़ाइल में सब लिखना इस तरह पेड़ के क्रम में फ़ाइल jS:

// = की आवश्यकता होती है jQuery

// = आवश्यकता jquery_ui

// = jquery.ui.core

+0

यह वही है जो कैस्प्ले ने कहा था। –

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