मैं एक ऐसे प्रोजेक्ट में शामिल हो गया हूं जिसमें एक डेटाबेस बनाने के लिए SQL कथन के साथ बहुत सी फाइलें हैं जिनका उपयोग एकीकरण परीक्षण के लिए किया जाता है।अस्थायी डेटाबेस बनाना जो मैवेन टेस्ट चरणों में काम करता है?
मुझे आश्चर्य है कि मैं यूनिट परीक्षण (जावा और मेवेन का उपयोग करके) के लिए डेटाबेस बनाने के लिए इन फ़ाइलों का उपयोग कैसे कर सकता हूं।
मैं प्रत्येक इकाई परीक्षण के लिए एक एचएसक्यूएल इन-मेमोरी डेटाबेस बना सकता हूं, या यहां तक कि बसंत jdbc एम्बेडेड-डेटाबेस सुविधा का उपयोग भी कर सकता हूं, लेकिन परीक्षण सेटअप में निष्पादित करने के लिए इतने सारे SQL कथन हैं कि यह स्केलेबल नहीं है।
तो मैवेन टेस्ट चरण की शुरुआत में एक अस्थायी डेटाबेस (जो SQL कथन लोड करता है) बनाना चाहता है, यूनिट परीक्षण इस अस्थायी डेटाबेस तक पहुंचें और विभिन्न संचालन करें, फिर अस्थायी डेटाबेस को हटाएं मेवेन टेस्ट चरण का अंत।
मैंने एसक्यूएल-मेवेन-प्लगइन देखा है जो मुझे परीक्षण चरण निष्पादन करने की अनुमति देगा, लेकिन मुझे यकीन नहीं है कि एक अस्थायी डेटाबेस को कॉन्फ़िगर कैसे करें जो सभी यूनिट परीक्षणों में उपलब्ध होगा। कनेक्ट करने के लिए कोई सर्वर नहीं है, और इन-मेमोरी डेटाबेस एकाधिक यूनिट परीक्षणों (मुझे लगता है) में काम नहीं करेगा।
एक विकल्प एक अद्वितीय अस्थायी फ़ाइल का उपयोग करने के लिए हो सकता है, उदा। जेडीबीसी ड्राइवर यूआरएल को जेडीबीसी के रूप में निर्दिष्ट करना: hsqldb: फ़ाइल:/path/to/अस्थायी/फ़ाइल, लेकिन मुझे यकीन नहीं है कि मैवेन में एक अनूठी अस्थायी फ़ाइल कैसे उत्पन्न करें।
ऐसा करने के तरीके पर कोई सुझाव, या यदि कोई बेहतर तरीका है?
अद्यतन: मैं लक्ष्य/डीबी निर्देशिका में बनाए गए फ़ाइल-आधारित डेटाबेस का उपयोग करने का निर्णय लेता हूं। मैं परीक्षण चलाने से पहले लक्ष्य/डीबी निर्देशिका को हटाने के लिए मैवेन क्लीन प्लगइन का उपयोग करता हूं, और स्क्रिप्ट से डेटाबेस बनाने के लिए मेवेन एसक्यूएल प्लगइन।
उत्तर के लिए धन्यवाद। हां, प्रत्येक इकाई परीक्षण में @ पहले से पूरे डेटाबेस को बनाने में धीमा होना बहुत अधिक है। मैं एच 2 या डर्बी से परिचित नहीं हूं लेकिन इन्हें देख लूंगा। –
@ बेन्सन: कल जैसा कि आपकी अन्य पोस्टों में से एक पर बताया गया है, जैसा कि 4 में अनुशंसित है), मैंने वास्तव में इसके लिए एक मेवेन प्लगइन बनाया है। – carlspring