जब भी मैं अपने रेल अनुप्रयोग के लिए आरएसपीईसी परीक्षण चलाता हूं, यह वास्तव में परीक्षण चलाने शुरू होने से पहले हमेशा के लिए और ओवरहेड का दिन लेता है। आरएसपीईसी इतनी धीमी क्यों है? क्या रेल की शुरुआती लोड को गति देने के लिए कोई रास्ता है या मुझे अपने रेल ऐप की आवश्यकता है (उदा। केवल ActiveRecord सामान) ताकि यह कुछ परीक्षण चलाने के लिए पूरी तरह से लोड न हो?आरएसपीसी रेल के नीचे इतना धीमा क्यों है?
उत्तर
आप अलग-अलग टर्मिनल विंडो में script/spec_server
चलाकर अपने script/spec
कॉल को तेज़ करने में सक्षम होना चाहिए, फिर अपने स्पेक कॉल में अतिरिक्त -X
पैरामीटर जोड़ना चाहिए।
क्या आप इसे रेल पर चला रहे हैं? यदि ऐसा है, तो यह आरएसपीईसी की शुरुआत नहीं है जो धीमा है, यह रेल है। चश्मा चलाने से पहले रेल को पूरे कोडबेस और आपके को प्रारंभ करना होगा। खैर, यह पर है, लेकिन यह करता है। आरएसपीसी मेरे छोटे गैर-रेल परियोजनाओं के तहत मेरे लिए बहुत तेज दौड़ता है।
धन्यवाद। मैंने सवाल को रेल-विशिष्ट होने के लिए स्पष्ट किया है। –
फिर हाँ, इसकी रेल, आरएसपीईसी नहीं है जो आपको निश्चित रूप से धीमा कर रही है। –
रनिंग परीक्षण वास्तव में धीमा हो सकता है क्योंकि पूरे रेल वातावरण को लोड करना है (स्क्रिप्ट/कंसोल का प्रयास करें) और केवल तभी सभी परीक्षण चल सकते हैं। आपको autotest का उपयोग करना चाहिए जो पर्यावरण को लोड रखता है और यह जांच करेगा कि आप कौन सी फाइलें संपादित करते हैं। जब आप फ़ाइल को संपादित और सहेजते हैं, तो केवल उन परीक्षणों पर निर्भर करता है जो स्वचालित रूप से और जल्दी से चलेंगे।
यदि आप मैक का उपयोग कर रहे हैं तो मैं ऑटोटेस्ट पर रुपेक्टर का उपयोग करने की सलाह देता हूं क्योंकि यह मतदान के लिए बहुत कम संसाधनों का उपयोग करता है, जो स्वत: से अधिक फ़ाइलों को बदलता है। दोनों एक पूर्ण कोको संस्करण
या मणि संस्करण है कि मैं Github
sudo gem install pelle-rspactor
पर बनाए रखने जबकि इन अलग-अलग rspec परीक्षण में तेजी लाने नहीं है नहीं है, वे बहुत तेजी से लगता है कि उन्हें ऑटो के रूप में आप को बचाने के एक दूसरे के भीतर प्रभावित कल्पना चलाओ।
अच्छा विचार है, लेकिन लिंक को अपडेट की आवश्यकता है और यह नवीनतम आरएसपीईसी के साथ काम नहीं कर रहा है। –
अब मैं mislavs संस्करण का उपयोग करने की सलाह देते हैं। सूडो मणि mislav-rspactor – Pelle
यदि आप विंडोज वातावरण पर हैं तो शायद आप ऐसा कर सकते हैं क्योंकि रेल विंडोज के तहत वास्तव में धीरे-धीरे स्टार्टअप लग रहा है। मेरे पास विंडोज़ पर एक ही अनुभव था और इसे वास्तव में ज़िप्पी बनाने के लिए मेरे सेटअप को लिनक्स वीएम में ले जाना पड़ा (मैं ऑटोटेस्ट का भी उपयोग कर रहा था)।
+1 स्थापित करें। मैं लिनक्स पर रेल और आरएसपीसी चलाता हूं और एक काफी शक्तिशाली मशीन पर यद्यपि कोई धीमी शिकायत नहीं है। मेरा सहयोगी समान हार्डवेयर पर विंडोज का उपयोग करता है, और रेल वातावरण को लोड करने में पूर्ण मिनट लग सकता है। –
आरएसपीईसी इतनी धीमी क्यों है? क्योंकि यह सभी वातावरण लोड करता है, फिक्स्चर लोड करता है और वह जैज़।
वहाँ रेल 'प्रारंभिक लोड तेजी लाने के लिए आप के बजाय डेटाबेस पर भरोसा करने की mocks का उपयोग कर की कोशिश कर सकते एक रास्ता है, यह वास्तव में इकाई परीक्षण के लिए सही है और निश्चित रूप से अपने इकाई परीक्षण तेज़ हो जाएगी। के रूप में @Marc-Andre Lafortune
द्वारा, @Scott Matthewman द्वारा mentionned mentionned zentest से Autotest के साथ एक ही मदद कर सकते हैं Additionnaly कल्पना सर्वर का उपयोग कर वहाँ एक रास्ता मेरे रेल एप्लिकेशन का भाग मैं की जरूरत है (उदाहरण के लिए ActiveRecord सामान केवल) तो खास तौर है यह कुछ परीक्षण चलाने के लिए बिल्कुल सब कुछ लोड नहीं करता है? क्या इस
के बारे मेंrake test:recent
मुझे यकीन है कि कैसे rspec कार्य इस के साथ एकीकृत नहीं कर रहा हूँ, लेकिन आप निश्चित रूप से परीक्षण इस्तेमाल कर सकते हैं: अगर rspec परीक्षण के साथ भी ऐसा ही करने के लिए एक टेम्पलेट के रूप में हाल ही में कार्य।
rake test:rspec:recent
अभी तक
रूबी के लिए एक नया ऑटोटेस्ट टूल है: इन्फिनिटी टेस्ट @ http://github.com/tomas-stefano/infinity_test – Jean
@ स्कॉट आप क्या सेकेंडिंग कर रहे हैं और क्यों? – rogerdpack
मौजूद नहीं है क्योंकि यह सभी environement लोड करता है, जुड़नार और सभी कि जाज लोड करता है।
असली अपराधी यह है कि यदि आप इसे rake spec
, it runs the db:test:prepare
task का उपयोग करके चलाते हैं।
यह कार्य आपके पूरे परीक्षण डेटाबेस को छोड़ देता है और इसे स्क्रैच से फिर से बनाता है। यह मेरे लिए हास्यास्पद लगता है, लेकिन यह वही करता है (वही होता है जब आप rake:test:units
आदि चलाते हैं)।
आप आसानी से spec
एप्लिकेशन का उपयोग कर इस पर काम कर सकते हैं जो rspec rspec मणि के हिस्से के रूप में स्थापित करता है।
:
cd railsapp
spec speC# run all specs without rebuilding the whole damn database
spec spec/models # run model specs only
cd spec
spec controllers/user* # run specs for controllers that start with user
डीबी को छोड़कर और इसे पुन: प्रयास करने से यह सुनिश्चित होता है कि फिक्स्चर से डेटा सही ढंग से लोड किया गया है और पिछले रनों से कोई संशोधन नहीं छोड़ा गया है। चलने वाला नमूना सीधे इसकी गारंटी नहीं देता है। यदि आप डीबी पर निर्भर होने जा रहे हैं तो आपको इसे स्क्रैच से फिर से बनाना होगा, मॉक ऑब्जेक्ट्स ftw! – Jean
मुझे लगता है कि "ज़ेन" अनुभव आप देख रहे हैं पृष्ठभूमि में spec_server
और autospec
को चलाने के लिए, परिणाम जा रहा है लगभग तुरंत परीक्षण जब आप एक फ़ाइल को सहेजने के साथ है।
हालांकि, मुझे इन दो कार्यक्रमों को संवाद करने में समस्याएं आ रही हैं। मैंने देखा है कि Autotest spec_server को आदेश नहीं भेजा जाता है
:
मैं एक स्पष्टीकरण here पाया। इसके बजाय यह पूरे रेल वातावरण और आपके एप्लिकेशन के प्लगइन्स को हर बार निष्पादित करता है। यह को स्क्रिप्ट सर्वर से काफी धीमी गति से चलाने का कारण बनता है, क्योंकि जब आप स्क्रिप्ट/spec कमांड चलाते हैं तो चश्मे spec_server पर भेजे जाते हैं जो में पहले से ही आपके रेल वातावरण को निकाल दिया गया है और जाने के लिए तैयार है। यदि आप एक नई प्लगइन या ऐसा कुछ स्थापित करने के लिए होते हैं, तो आप को spec_server को पुनरारंभ करना होगा।
लेकिन, हम इस समस्या को कैसे ठीक करते हैं? मुझे लगता है कि इसमें ज़ेनटेस्ट डाउनलोड करना और autotest
प्रोग्राम के लिए कोड बदलना शामिल है, लेकिन अभी इसे आजमाने का समय नहीं है।
rspec-rails-1.2.7 के रूप में, spec_server को स्पार्क मणि के पक्ष में बहिष्कृत किया जाता है।
मुख्य कारण यह है कि कुछ कारणों से विंडोज़ पर हमेशा लेता है।
स्पीडअप के लिए टिप्स: स्पार्क अब विंडोज़ के साथ काम करता है, मुझे विश्वास है।
आप कोशिश कर सकते हैं "faster_require" जो स्थानों कैश:
http://github.com/rdp/faster_require
जीएल। -आरपी
मैं निश्चित रूप से स्पार्क की जांच करने का सुझाव देता हूं।
railstutorial विशेष रूप से इस पते, और spork रेल 3.0 में अच्छी तरह से चलाने के लिए एक समाधान देता है (इस पल के रूप में, Spork रेल 3 बॉक्स से बाहर तैयार नहीं है)। बेशक, यदि आप रेल 3.0 पर नहीं हैं, तो आपको जाने के लिए अच्छा होना चाहिए।
ट्यूटोरियल का हिस्सा कैसे रेल 3,0
http://railstutorial.org/chapters/static-pages#sec:spork
जाँच हो रही है जब spork है में spork चलाने के लिए दिखा रेल इस उत्तर के लिए 3.0 तैयार
स्पार्क ने मेरे लिए बहुत अच्छा काम किया है, इसने फिर से मजा परीक्षण किया है। –
स्पार्क के बारे में उल्लेख करने के लिए केवल एक विवरण है: यह विंडोज़ पर नहीं चलता है। – lampak
- 1. टेस्टकंपलेट इतना धीमा क्यों है?
- 2. वालराय इतना धीमा क्यों है?
- 3. रुपये कैनवास इतना धीमा क्यों है?
- 4. मेरा एचजीवेब सर्वर इतना धीमा क्यों है?
- 5. array.map (String.fromCharCode) इतना धीमा क्यों है?
- 6. एंड्रॉइड फोन सिम्युलेटर इतना धीमा क्यों है?
- 7. ग्लासफ़िश व्यवस्थापक कंसोल इतना धीमा क्यों है?
- 8. आयरनपीथन स्टार्टअप समय इतना धीमा क्यों है?
- 9. यह jQuery चयनकर्ता इतना धीमा क्यों है?
- 10. क्यों PyQt अनुप्रयोग स्टार्टअप इतना धीमा है?
- 11. मेरा मोंगोडब कॉल इतना धीमा क्यों है?
- 12. पापी का डेक इतना धीमा क्यों है?
- 13. मेरा डीबगर इतना धीमा क्यों है?
- 14. कंसोल आउटपुट इतना धीमा क्यों है?
- 15. SQL का आयात इतना धीमा क्यों है?
- 16. MySQL InnoDB इतना धीमा क्यों है?
- 17. रूबी स्कैनफ़ इतना धीमा क्यों है?
- 18. यह सरल हैकेल एल्गोरिदम इतना धीमा क्यों है?
- 19. MSYS में इतना धीमा क्यों कॉन्फ़िगर किया गया है?
- 20. यह जेरोमक्यू (ज़ीरोएमक्यू पोर्ट) बेंचमार्क इतना धीमा क्यों है?
- 21. आईई 7 पर jQuery अजाक्स इतना धीमा क्यों है?
- 22. मेरा मैवेन उबंटू पर इतना धीमा क्यों है?
- 23. हास्केल में यह रिकर्सिव फ़ंक्शन इतना धीमा क्यों है?
- 24. रेल: आरएसपीसी
- 25. रेल: आरएसपीसी
- 26. आरएसपीसी रेल
- 27. रेल, साइट के नीचे धीमा gemfile में कई रत्न हैं?
- 28. मिनजीडब्ल्यू क्यों धीमा है?
- 29. सशर्त ब्रेकपॉइंट्स मेरे प्रोग्राम को इतना धीमा क्यों करते हैं?
- 30. MySQL अनुक्रमणिका नीचे धीमा कर रहा है
स्पष्ट होने के लिए, आप ऐसा कुछ करेंगे: spec --color ./spec -X –
spec_server अब स्पार्क के पक्ष में बहिष्कृत है। (http://github.com/timcharper/spork) – austinfromboston
https://github.com/sporkrb/spork - स्पार्क – ted