Maven जीवनचक्र जो प्री और पोस्ट टेस्ट से मेल खाती है। ऐसा इसलिए है क्योंकि यूनिट परीक्षणों के लिए बाहरी वातावरण की आवश्यकता नहीं होती है। ऐसा लगता है कि आप जो करना चाहते हैं वह इकाई परीक्षण नहीं बल्कि एकीकरण परीक्षण है, क्योंकि उन्हें स्थापित करने के लिए एक वातावरण की आवश्यकता होती है।
दस्तावेज़ से :
और एक pre-integration-test
है , integration-test
और post-integration-test
जिनका उपयोग परीक्षण वातावरण को सेटअप, चलाने और नष्ट करने के लिए किया जाता है।
इस प्रकार, integration-test
. में ऐसा करना आसान और अधिक साफ-सुथरा होगा चरण maven-failsafe-plugin
का उपयोग करके
।
अब, यदि आप वास्तव में इसे यूनिट परीक्षणों के रूप में चलाना चाहते हैं, तो मैं डेटाबेस के निर्माण/विलोपन को मेवेन प्लगइन के रूप में नहीं लिखूंगा। परीक्षण वातावरण में कॉन्फ़िगर किए जाने पर आपके एप्लिकेशन को परीक्षण डेटाबेस बनाने देना बहुत बेहतर होगा। (उदाहरण के लिए, यदि आप स्प्रिंग का उपयोग कर रहे हैं, तो उसके लिए इसमें बहुत सारी सुविधाएं हैं।)
और, यदि आप वास्तव में इसे test
. में इकाई परीक्षण के रूप में चलाना चाहते हैं चरण, और अपने प्लगइन का उपयोग करके, आपको maven-surefire-plugin
के डिफ़ॉल्ट निष्पादन को छोड़ना होगा और फिर डेटाबेस बनाने वाले अपने मावेन प्लगइन के निष्पादन को परिभाषित करें, maven-surefire-plugin
का एक नया निष्पादन और डेटाबेस को छोड़ने वाले आपके मावेन प्लगइन का निष्पादन, test
. के लिए बाध्य है चरण।
यह काम करता है क्योंकि मावेन के क्रम में प्लगइन्स को इनवाइट करता है वे पोम में परिभाषित हैं जब वे एक ही चरण के लिए बाध्य हों।
एक विन्यास इस तरह दिखेगा:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>default-test</id>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId><!-- group id of your plugin --></groupId>
<artifactId><!-- artifact id of your plugin --></artifactId>
<version><!-- version --></version>
<executions>
<execution>
<id>create-db</id>
<phase>test</phase>
<goals>
<goal><!-- your goal --></goal>
</goals>
<!-- add configuration -->
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<executions>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId><!-- group id of your plugin --></groupId>
<artifactId><!-- artifact id of your plugin --></artifactId>
<version><!-- version --></version>
<executions>
<execution>
<id>drop-db</id>
<phase>test</phase>
<goals>
<goal><!-- your goal --></goal>
</goals>
<!-- add configuration -->
</execution>
</executions>
</plugin>