2011-10-31 10 views
6

आज सुबह मैंने अपने परीक्षण चलाए और 2 विफलियां हैं। लेकिन मैंने कुछ दिनों के लिए कोई कोड नहीं बदला है और सभी परीक्षण गुजर रहे थे।क्या गिट के बिना कोड को बदलने के लिए कोड संभव है?

गिट के अनुसार, कोई बदलाव नहीं है (cover.data को छोड़कर, जो परीक्षण आउटपुट है)। gitk कोई अन्य परिवर्तन दिखाता है।

कोड कब बदलते समय गिट को कैसे पता चलता है? क्या यह एक एसएसडी विफलता/त्रुटि के कारण हो सकता है?

क्या हुआ यह जानने का सबसे अच्छा तरीका क्या है?

संपादित करें: इकाई परीक्षण ढांचे के साथ रेल पर रूबी में काम करना।

+4

चूंकि यह आज असफल रहा है, देखें कि यह एक महीने के आखिरी दिन, विशेष रूप से 31 दिनों के साथ कुछ दिनांक मुद्दा है या नहीं। – manojlds

+0

वह था। महीने के आखिरी दिन में विफल रहता है। –

उत्तर

10

मैं यह पता लगाकर शुरू करूंगा कि परीक्षण क्यों विफल हुए, और इससे आपको कुछ संकेत मिल सकते हैं कि वे पहले कैसे पारित हो सकते हैं। कभी-कभी यह एक समय मुद्दा है, अंतःक्रियात्मक विफलता, परीक्षण दोहन के लिए बाहरी कुछ, डेटा बदलना, तिथि या समय में बदलाव, सामान के सभी प्रकार।

+0

हां, यह एक समय मुद्दा है। दिनांक.today की गणना - 6. माह + 6. माह। महीने के आखिरी दिन में विफल रहता है जिसमें 31 दिन हैं! (साथ ही 2 9 अगस्त (गैर-लीप वर्षों पर) और 30, मुझे लगता है)। –

+2

हाँ आप इसके बारे में सही हैं। जब मैं 'डेटटाइम' चलाता हूं। आज। AddMonths (-6) .ddMonths (6)। ToShortDateString(); 'डीबगर के तहत, मुझे '10/30/2011' मिलता है - ऐसा लगता है जब मैं 6mon घटाता हूं, मैं वापस आऊंगा 30 अप्रैल को (अप्रैल के बाद से कोई दिन 31 नहीं है), लेकिन फिर जब मैं उसमें 6mon जोड़ता हूं, तो मुझे 30 अक्टूबर को मिल जाएगा। मुझे लगता है कि यह समझ में आता है। –

2

आपके भंडार में गिट के बिना इसके बारे में जानने और इसे लॉगिंग करने के लिए कोई परिवर्तन नहीं हो सकता है क्योंकि इसे रेपो फ़ाइलों को वैसे भी प्राप्त करने में सक्षम होने के लिए लॉग पुनर्प्राप्त करना आवश्यक है। मैं यह देखने के लिए जांच करूंगा कि असफलता मशीन पर किसी चीज के कारण नहीं होती है जो परीक्षण के समय एक ही समय में नहीं चलनी चाहिए या यह संभवतः एक दौड़ की स्थिति हो सकती है जिसे आप उम्मीद नहीं कर रहे हैं।

9

मुझे लगता है कि माइक को आपकी समस्या मिली है (कृपया थोड़ा जवाब बॉक्स कृपया)।

हां, गिट के बिना कोड को बदलने के लिए कोड संभव है। फ़ाइल जो विफलता का कारण बनती है, शायद एक अस्थायी परीक्षण फ़ाइल या स्थिरता, या तो .gitignore या .git/info/extrae में अनदेखा की जा सकती है। git clean -dxf करना गिट के लिए ज्ञात किसी भी चीज की चेकआउट साफ़ को मिटा देगा। git status --ignored गिट द्वारा अनदेखा फ़ाइलों को दिखाएगा। यदि ऐसा है, तो आप अपने परीक्षण धावक के हिस्से के रूप में बेहतर परीक्षण सफाई जोड़ना चाहते हैं।

भावी पीढ़ी के लिए, यहाँ वहाँ जा रहा है Git करने के लिए कोड में कोई परिवर्तन दिखाई बिना असफल हो सकता है तरीकों परीक्षण की संक्षिप्त सूची है:

  • "अस्थाई" परीक्षण फ़ाइलों और जुड़नार गंदा हो सकता है।
  • "अस्थायी" डेटाबेस और टेबल गंदे हो सकते हैं।
  • यह समय या तारीख के लिए संवेदनशील है।
  • यह नेटवर्क संसाधनों का उपयोग करता है और वे बदल गए।
  • संकलक बदल दिया गया था।
  • स्थापित पुस्तकालयों को बदल दिया गया था।
    • पुस्तकालयों का उपयोग पुस्तकालयों को बदल दिया गया था।
  • कर्नेल बदल दिया गया था।
  • किसी भी सर्वर का उपयोग किया गया (डेटाबेस, वेब सर्वर, आदि ...) बदल दिए गए थे।
  • यह समांतर प्रसंस्करण का उपयोग करता है और एक सूक्ष्म बग केवल कभी-कभी होता है।
  • डिस्क (या फाइल सिस्टम जहां temp फ़ाइलें जाती हैं) पूर्ण है।
  • डिस्क (या फाइल सिस्टम जहां temp फ़ाइलें जाती हैं) टूटा हुआ है।
  • आपकी मेमोरी/डिस्क/प्रक्रिया/फ़ाइल हैंडल कोटा कम कर दिया गया था।
  • मशीन मेमोरी से बाहर हो गई है।
  • मशीन फ़ाइल हैंडल से बाहर हो गई है।
  • यह यादृच्छिक रूप से जेनरेट किए गए डेटा के साथ जुड़नार का उपयोग करता है और कुछ बग को उत्पन्न करता है।
संबंधित मुद्दे