के साथ कॉम्प्लेक्स डाटाबेस स्टेटस का सेटअप और फायर डाउन मेरे पास एक कक्षा है जिसमें मैं यूनिट परीक्षण कर रहा हूं जिसके लिए अलग-अलग परीक्षण विधियों को चलाने से पहले काफी व्यापक डेटाबेस सेटअप की आवश्यकता होती है। इस सेटअप में काफी समय लगता है: कारणों से आशाजनक रूप से प्रश्न के लिए प्रासंगिक नहीं है, मुझे एसक्यूएल डंप के बजाय प्रोग्रामिंग रूप से डीबी को पॉप्युलेट करना होगा।हाइबरनेट/स्प्रिंग/जुनीट
मेरे पास समस्या आंसू के साथ है। मैं डीबी सेटअप चरण में किए गए सभी परिवर्तनों को आसानी से कैसे रोलबैक कर सकता हूं?
मैं वर्तमान में हाइबरनेट + स्प्रिंग ट्रांजेक्शनल परीक्षण समर्थन का उपयोग कर रहा हूं, जैसे कि मेरे व्यक्तिगत परीक्षण विधियां लेनदेन में लिपटे हैं।
एक समाधान प्रत्येक परीक्षण विधि के भीतर डीबी सेटअप करना होगा, जैसे डीबी सेटअप स्वचालित रूप से वापस रोल किया जाएगा। हालांकि, परीक्षण विधियों को हमेशा चलाने के लिए ले जाएगा क्योंकि प्रत्येक विधि को डेटाबेस को दोबारा तैयार करने की आवश्यकता होगी।
कोई अन्य विचार? असल में, मैं अपने डीबी सेटअप को चलाने का एक तरीका ढूंढ रहा हूं, अपने व्यक्तिगत परीक्षण चलाता हूं (प्रत्येक लेनदेन में लपेटा जाता है जो निष्पादन के बाद लुढ़का हुआ हो जाता है), और उसके बाद प्रारंभिक डीबी सेटअप रोल-बैक करता है। इसे हाइबरनेट/स्प्रिंग/जुनीट फैशन में काम करने के बारे में कोई विचार? क्या कोई हाइबरनेट "सभी टेबल ड्रॉप" समकक्ष कमांड है?
कभी-कभी मैं सबसे सरल विकल्पों को भूल जाता हूं। बोनस आपको इंगित करता है। –
तो समाधान के रूप में इसे स्वीकार करके इसका मतलब है कि आपने डीबी सेटअप/प्रति व्यक्तिगत परीक्षण को फाड़ने का विकल्प चुना है? –
मैं वास्तव में एक स्थिर @BeforeClass Junit विधि का उपयोग कर उसी कक्षा में परिभाषित परीक्षणों के एक सेट के लिए डीबी स्थापित करने के साथ चला गया। लेकिन @Before JUnit विधि के साथ प्रति-परीक्षण आधार पर करना आसान होगा। –