2009-07-06 11 views
5

का उपयोग करते हैं, मैं MySQL का उपयोग करने वाले किसी एप्लिकेशन के लिए कुछ unittests लिखना चाहता हूं। हालांकि, मैं एक वास्तविक mysql डेटाबेस से कनेक्ट नहीं करना चाहता, बल्कि एक अस्थायी के लिए जो किसी भी SQL सर्वर की आवश्यकता नहीं है।परीक्षण पाइथन अनुप्रयोग जो mysql

कोई पुस्तकालय (मुझे Google पर कुछ भी नहीं मिला)? कोई डिजाइन पैटर्न? ध्यान दें कि डीआईपी काम नहीं करता है क्योंकि मुझे अभी भी इंजेक्शन कक्षा का परीक्षण करना होगा।

+0

pypi.python.org/pypi/pg13 आज़माएं, जिसमें SQL सिम्युलेटर है। चेतावनी: मैंने इसे लिखा था। – amwinter

उत्तर

8

ऐसा करने का कोई अच्छा तरीका नहीं है। आप एक वास्तविक MySQL सर्वर के खिलाफ अपने प्रश्नों को चलाने के लिए चाहते हैं, अन्यथा आप नहीं जानते कि वे काम करेंगे या नहीं।

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

4

मैं python-mock और mox ऐसे प्रयोजनों के लिए उपयोग किया है (अत्यंत हल्के परीक्षण है कि पूरी तरह से किसी भी एसक्यूएल सर्वर की आवश्यकता नहीं कर सकते हैं), लेकिन और अधिक व्यापक/में गहराई से परीक्षण के लिए, शुरू करने और MySQL की एक स्थानीय उदाहरण पॉप्युलेट नहीं है या तो बहुत बुरा

दुर्भाग्यवश एसक्यूएलआईटी की एसक्यूएल बोली और MySQL की तुलना में काफी भिन्न है कि परीक्षणों के लिए पूर्व का उपयोग करने की कोशिश कुछ हद तक अव्यवहारिक है, जब तक कि आप कुछ ओआरएम (डीजेगो, एसक्यूएलब्जेक्ट, स्क्लाक्लेमी, ...) का उपयोग नहीं कर रहे हैं जो बोली अंतर को छुपा सकते हैं।

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