2009-07-29 10 views
5

द्वारा डाले गए रिकॉर्ड नहीं देख सकते हैं, मैं पोस्ट डिक हुक के माध्यम से अपने django एप्लिकेशन को उपवर्तन से एकीकरण प्रदान करने की कोशिश कर रहा हूं।django टेस्ट केस

मेरे पास एक django टेस्ट केस (unittest.TestCase का उप-वर्ग) है (ए) एक तालिका में कुछ रिकॉर्ड डालता है, (बी) एक svn प्रतिबद्धता उत्पन्न करता है, (सी) svn प्रतिबद्ध एक हुक चलाता है जो मेरा उपयोग करता है जानकारी देखने के लिए django मॉडल।

मैं एक sqlite3 डीबी का उपयोग कर रहा हूँ। परीक्षण का उपयोग कर: स्मृति: डीबी, यह एक वास्तविक फ़ाइल का उपयोग कर रहा है। जब मैंने इसे समाप्त किया है तो परीक्षण डीबी को हटाने से बचने के लिए मैंने django टेस्ट कोड (इस समस्या को डीबग करने के लिए) को संशोधित किया है, इसलिए मैं इसका निरीक्षण कर सकता हूं।

परीक्षण कोड मॉडल डंप करता है। MyModel.objects.all() और रिकॉर्ड (ए) और (बी) के बीच हैं।

जब हुक आग लगती है (सी) यह मॉडल को भी डंप करती है और कोई रिकॉर्ड नहीं होता है। जब मैं टेस्ट रन के बाद मैन्युअल रूप से डीबी का निरीक्षण करता हूं, तो कोई रिकॉर्ड नहीं होता है।

क्या डीजेगो परीक्षण ढांचे में कुछ चल रहा है जो डीबी फाइल में रिकॉर्ड नहीं कर रहा है?

को स्पष्ट करने के लिए: (डी) परीक्षण केस समाप्त करें। इस प्रकार एसवीएन प्रतिबद्ध हुक परीक्षण केस समाप्त होने से पहले चलाया जाता है, और किसी भी django डीबी क्लीनअप कोड से पहले चलाना चाहिए।

अतिरिक्त जानकारी: मैंने (बी) और (बी) के बीच 15 सेकंड देरी जोड़ा ताकि मैं परीक्षण के बीच में मैन्युअल रूप से डीबी फ़ाइल की जांच कर सकूं। रिकॉर्ड फ़ाइल में नहीं हैं।

उत्तर

5

क्या आप Django ट्रंक का उपयोग कर रहे हैं? हालिया परिवर्तन (Changeset 9756) एक लेनदेन में परीक्षण चलाएं जिसे फिर वापस लुढ़काया जाता है। यहाँ चेक-इन टिप्पणी है:

फिक्स्ड # 8138 - बदली गई django.test.TestCase परीक्षण रोलबैक करने के लिए (जब डेटाबेस इसका समर्थन करता है) फ्लशिंग के बजाय और डेटाबेस को पुन: लोड। यह काफी बड़े परीक्षण सूट चलाने में लगने वाले समय को कम कर सकता है।

+0

विनय, धन्यवाद। मेरे पास मेरे पेड़ में वह कोड है। मैंने झूठी लेनदेन के समर्थन को मजबूर कर दिया और अब परीक्षण गुजर रहा है। – bstpierre

+0

@bstpierre, आपने झूठी लेनदेन के समर्थन को कैसे मजबूर किया? – Greg

+0

@ ग्रेग चेंजेट के दिखने से मैंने शायद 'टेस्टकेस' के बजाय 'ट्रांजैक्शनटेस्टकेस' का इस्तेमाल किया लेकिन यह एक उचित शर्त है कि इनमें से कुछ पिछले 7 वर्षों में बदल गए हैं, इसलिए ymmv – bstpierre

0

परीक्षण ढांचा डेटाबेस में डेटा को सहेज नहीं रहा है, परीक्षण समाप्त होने के बाद डेटा साफ़ हो जाता है।

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