2012-01-12 14 views
12

के साथ चल रहे परीक्षणों में मुझे अपने यूनिट परीक्षण चलाने में कुछ समस्याएं आ रही हैं जब मेरा पोम पैकेजिंग प्रकार "पोम" पर सेट होता है। सबसे पहले, यह कह रहा था कि इस परियोजना के लिए कोई लक्ष्य आवश्यक नहीं है, इसलिए मैंने मैवेन-सिक्योरफायर-प्लगइन परीक्षण लक्ष्य में टेस्ट चरण को बांधने के लिए अपने pom.xml में मेवेन-सिक्योरफायर-प्लगइन जोड़ा।मैवेन पैकेजिंग प्रकार "पोम"

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.9</version> 
      <executions> 
       <execution> 
        <phase>test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

अब सुनिश्चित प्लगइन निष्पादित हो रहा है, लेकिन यह कहता है कि चलाने के लिए कोई परीक्षण नहीं है। यदि मैं पैकेजिंग प्रकार को जार में बदलता हूं और एमवीएन परीक्षण चलाता हूं तो यह मेरी परीक्षण फाइलों को उठाता है।

जब मैं mvn test -X चलाता हूं तो यह कहता है "testSourceDirectory = C: \ dev \ dsl \ src \ test \ java", जो सही स्थान है। क्या परीक्षण स्थान "जार" के मुकाबले पैकेजिंग प्रकार "पोम" के लिए अलग है? मैंने

  <configuration> 
       <testSourceDirectory>src/test/java</testSourceDirectory> 
      </configuration> 

निश्चित प्लगइन में जोड़ने की कोशिश की, लेकिन इससे कोई मदद नहीं मिली।

+3

पोम पैकेजिंग मेटाडेटा-केवल परियोजनाओं के लिए है, नहीं? तुम क्या करने की कोशिश कर रहे हो? –

+1

मैं वास्तव में इसी परिदृश्य में हूं - मेरे पास केवल सिस्टम परीक्षणों का एक मॉड्यूल है जो मैं दौड़ना चाहता हूं लेकिन उनमें से एक जार का उत्पादन नहीं करता हूं। हालांकि मुझे वास्तव में पोम के अलावा कुछ पैकेजिंग प्रकार निर्दिष्ट किए बिना चलाने के लिए परीक्षण नहीं मिल सकते हैं। मैं यह कैसे करूं (यह शायद एक अलग प्रश्न के योग्य है)। – whaley

+0

@ डेव न्यूटन मैं ऐसा करना चाहता था क्योंकि यह जावा एप्लिकेशन नहीं था, मैं आर्टिफैक्ट के रूप में डेटाबेस स्क्रिप्ट के साथ एक ज़िप फ़ाइल बनाना चाहता था। – user977208

उत्तर

10

जैसा कि डेव ने टिप्पणी की है, यदि आप pom पैकेजिंग का उपयोग कर रहे हैं, तो यह केवल निम्नलिखित जीवन चक्र लक्ष्यों को निष्पादित करता है। this संबंधित मैवेन दस्तावेज़ का संदर्भ लें।

  • पैकेज
  • स्थापित
  • तैनात

आप किसी भी अन्य लक्ष्य को चलाने के लिए इसकी आवश्यकता है, तो आप स्पष्ट रूप से यह निर्दिष्ट करने के लिए की आवश्यकता होगी। उदाहरण के लिए,

mvn clean compiler:testCompile surefire:test 
+0

ओह धन्यवाद! मुझे पता था कि यह परीक्षण चरण से बंधे नहीं थे, लेकिन यह मेरे सिर पर क्लिक नहीं किया गया था कि मुझे कंपाइलर चलाने की आवश्यकता होगी: testCompile भी। – user977208

+0

एक और सवाल। मैंने सोचा कि मैं इसे कंपाइलर बांधने के लिए कर सकता हूं: टेस्ट चरण में टेस्ट कॉम्पाइल, लेकिन यह काम नहीं कर रहा है। कोई सुझाव? org.apache.maven.plugins Maven-संकलक प्लगइन 2.3.2 परीक्षण संकलन testCompile user977208

+0

कोई बात नहीं, मेरे पास दो मेवेन-कंपाइलर-प्लगइन अनुभाग थे, इसलिए यह ओवरराइड हो रहा था – user977208

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