2012-09-17 6 views
8

मुझे बताया गया था कि मुझे परीक्षण के अलावा rails_env में मेरी rspec चश्मा नहीं चलाना चाहिए।मुझे अपने रेल ऐप पर केवल आरएसपीईसी चश्मे क्यों चलाना चाहिए, न केवल टेस्ट पर्यावरण में, देव या प्रोड?

उत्पादन या विकास में चश्मा चलाने में संभावित समस्याएं क्या हैं? मैं दोनों में चश्मा चलाता हूं। मैं आमतौर पर देव में चश्मा चलाता हूं जब तक कि मैं कुछ ऐसी चीज का परीक्षण नहीं कर रहा जो संपत्ति पाइपलाइन का उपयोग करता हो। मैं इसके लिए उत्पादन में स्विच करता हूं और 15 मिनट पूर्व-संकलन संपत्ति खर्च करता हूं। क्या मेरे वर्तमान तरीकों से परीक्षण पर्यावरण का उपयोग करने के कोई फायदे हैं?

मैंने एक उत्तर खोजा लेकिन कुछ भी समझाया कि मुझे देव या प्रोड का उपयोग क्यों नहीं करना चाहिए।

उत्तर

7

चल रहा है परीक्षण स्वीट (जैसे rspec) एक test वातावरण में विशेष रूप से सुरक्षा चिंताओं के लिए संसाधनों को अलग करने, अपने डेटाबेस की अखंडता का इरादा है। टेस्ट अक्सर आपके डेटाबेस में डेटा दूषित या पूरी तरह से हटा देते हैं।

यह सभी संसाधनों के लिए भी सच है। test पर्यावरण का उपयोग करके आप संसाधनों को काट सकते हैं और नकली कर सकते हैं, जिससे आप किसी भी चीज को भ्रष्ट करने से परीक्षण कर सकते हैं।

अलग वातावरण का उपयोग करने के कई कारण हैं लेकिन मूल रूप से यह संसाधनों का एक पृथक्करण है, और test पर्यावरण के संदर्भ में यह उत्पादन संसाधनों और चल रहे सिस्टम की सुरक्षा सुनिश्चित करते समय आपके आवेदन की पुष्टि को सक्षम करना है।

+0

मुझे लगता है कि ज्यादातर लोग 'सुरक्षा' के बजाय डेटा 'अखंडता' शब्द का उपयोग करेंगे। सुरक्षा आम तौर पर बाहरी पार्टी द्वारा [दुर्भावनापूर्ण] परिवर्तन को दर्शाती है। –

+0

@NewAlexandria अच्छा बिंदु – rudolph9

+0

[यह] (http://stackoverflow.com/questions/8607680/using-cucumber-rspec-in-a-production-environment) [है] (http://stackoverflow.com/questions/ 6200931/यात्री-मिस-विकास-मणि-इन-प्रोडक्शन-पर्यावरण) [एक आम] (http://stackoverflow.com/questions/7432099/rails-testing-production) [समस्या] (http://stackoverflow.com/प्रश्न/11644233/चर्चा-is-rspec-for-test-environment), जो [SO पर कुछ संदर्भ है] (http://stackoverflow.com/search?q=rspec+production+environment&submit=search) –

3

चलो विशेष रूप से न्यूब्स है कि इस पोस्ट को पढ़ने के लिए किया जा सकता है स्पष्ट होना,: RAILS_ENV=production (स्थानीय) परीक्षण चलाने के समान नहीं है "production वातावरण में।" मुझे पता है कि आप (ओपी) जानते हैं, लेकिन उत्पादन env में परीक्षण चलाने का खतरा इस चेतावनी वारंट।

केवल करने के लिए कई कारण हैं, test env में चलाने के आम तौर पर डीबी की हैंडलिंग से संबंधित हैं:

  • Rspec डीबी में डेटा की एक कस्टम 'संस्करण' बनाता है, और उस पर चल रही है, डिस्क में कुछ बदलावों को जारी रखना जारी रखें।
  • कई परीक्षण परीक्षण अलगाव के अंत की ओर मौजूदा चीजों को मिटा देते हैं और चीजों को बेवकूफ़ बनाते हैं। यह आपके द्वारा उपयोग किए जा रहे डेटा को परीक्षण में बाहर ले जा सकता है।

अन्य कारणों लाइनों उन्हें साथ हैं आप पहले से ही अनुमान लगाया गया है:

  1. अपने prod पर्यावरण रत्न कि परीक्षण के लिए उपयोग किया जाता है शामिल नहीं होना चाहिए। क्यों ?:
    • परीक्षण जवाहरात अधिक कोड है कि, OT लोद & रन आवश्यकता हो सकती है बेकार में, लाइव अनुप्रयोग में
    • परीक्षण से संबंधित रत्न अपने उत्पादन एप्लिकेशन में सुरक्षा संबंधी दोषों को लागू कर सकते हैं जोड़ें।
  2. कुछ संपत्तियां 'संकलित' होने के बाद ठीक से परीक्षण नहीं कर सकती हैं।
  3. संपत्ति और अन्य तैनाती-पाइप-लाइन प्रीकंपाइल परीक्षण प्रक्रिया की सेवा में अलग-अलग/बंद/आदि को संभाला जा सकता है।
  4. कुछ एपीआई और सेवाएं सैंडबॉक्स हो सकती हैं, या परीक्षण/स्टेजिंग में स्टब किए गए हैं, जैसे ईमेल या रिपोर्ट जैसे भुगतान-प्रति-उपयोग सेवाओं के लिए एपीआई कॉल।

संभावनाएं भी-रिवाज (आपके ऐप्लिकेशन के लिए) एक सबसे अच्छा अभ्यास सुझाव देने के लिए ... लेकिन, अनावश्यक कहने के लिए कर रहे हैं वहाँ कई 'परीक्षण मोड' सेटिंग कि विन्यास की आवश्यकता हो सकती है जब rails_ENV=test

+0

बहुत अच्छा जवाब, इच्छा है कि मैं दो उत्तरों स्वीकार कर सकता हूं। – Spencer

0

आपको अपनी प्राथमिकताओं को स्पष्ट करना चाहिए। आप चश्मा क्यों चलाते हैं?

  1. सुनिश्चित करने के लिए, आपके परिवेश xyz सुनिश्चित करने के लिए सभी या
  2. पर अपने कोड चलाता है, जो आपके कोड करता एकदम सही ढंग से
  3. 2 के लिए

मैं कहूंगा, सबसे ppl चलाने चश्मा , और यह वास्तव में न्यूएलेक्सेंड्रियास उत्तर में दिए गए कारणों के लिए, परीक्षण पर्यावरण में होना चाहिए।

जब आप तैनाती के बाद 1 के बारे में जांचना चाहते हैं, तो चलने वाली चश्मा मेरे लिए थोड़ी दूर लगती है। सरल तरीके होना चाहिए।

जब आप तैनाती करते हैं, और आप 2 के बारे में निश्चित नहीं हैं ... ... समयपूर्व तैनाती, कुछ, आपको नहीं करना चाहिए।