2012-08-13 10 views
7

मैं TestNG साथ अचूक लिए मेरे पोम में निम्नलिखित विन्यास को परिभाषित किया है में लिए खड़े करता है:क्या "डिफ़ॉल्ट परीक्षण" Maven-अचूक प्लगइन

<plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.12</version> 
      <configuration> 
       <skipTests>${skip-all-tests}</skipTests> 
      </configuration> 
      <executions> 
       <execution> 
        <id>unit-tests</id> 
        <phase>test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <skip>${skip-unit-tests}</skip> 
         <groups>unit</groups> 

         <excludedGroups>integration</excludedGroups> 
        </configuration> 
       </execution> 
       <execution> 
        <id>integration-tests</id> 
        <phase>integration-test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <skip>${skip-integration-tests}</skip> 
         <groups>integration</groups> 
         <excludedGroups>unit</excludedGroups> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

लेकिन यह दो फांसी हमेशा से पहले कर रहे हैं लगता है एक "डिफ़ॉल्ट-परीक्षण" रन जो हर @test एनोटेटेड विधि को चलाने के लिए प्रतीत होता है (कम से कम मुझे ऐसा लगता है)।

--- maven-surefire-plugin:2.12:test (default-test) @ my-project 

उदाहरण के लिए परियोजना पर "एमवीएन परीक्षण" चलाते हुए, दो परीक्षण निष्पादन होते हैं। "डिफ़ॉल्ट-परीक्षण" और "इकाई-परीक्षण"।

क्या कोई इसे मेरे लिए थोड़ा और समझा सकता है? क्या इसे अक्षम या नियंत्रित किया जा सकता है (कॉन्फ़िगर किया गया है कि क्या परीक्षण किया गया है और क्या नहीं)?

+0

एमवीएन सहायता के माध्यम से अपने परिणामी पोम में एक नज़र डालें: प्रभावी-पोम। इसके अलावा ऐसी चीज को परिभाषित करने के लिए सबसे अच्छी बात यह है कि इसे प्लगइन में डाल दें प्रबंधन और आपको मैवेन-असफलता-प्लगइन द्वारा एकीकरण परीक्षण चलाया जाना चाहिए और मैवेन-सिक्योरफायर-प्लगइन के माध्यम से नहीं। – khmarbaise

+0

धन्यवाद, जो पहले से ही मेरे लिए बहुत साफ हो गया है! यदि आप अपनी टिप्पणी को उत्तर फ़ॉर्म में डालते हैं तो मैं आपको क्रेडिट दूंगा। –

उत्तर

15

लोग मेवेन के भीतर प्लगइन के डिफ़ॉल्ट अंतर्निहित निष्पादन को ओवरराइड करने का तरीका चाहते थे।

मैवेन 3 (या इसे 2.1.0 या 2.2.0 के रूप में शुरू किया गया हो सकता है) पैकेजिंग के जीवन चक्र द्वारा प्रभावी पोम में जोड़े गए प्रत्येक प्लगइन निष्पादन के लिए डिफ़ॉल्ट निष्पादन आईडी को परिभाषित करके हल किया गया।

इस निहित आईडी का नाम हमेशा default-_____ है जो मुझे उत्पन्न होने वाले सटीक नियम को याद नहीं कर सकता है।

इसलिए आप मिलान निष्पादन को परिभाषित करके पैकेजिंग के इंजेक्शन निष्पादन को ओवरराइड कर सकते हैं।

अपने मामले का समाधान करने के लिए मैं या तो <id>default-test</id> या को <id>unit-tests</id> बदल जाएगा जोड़ने

  <execution> 
       <id>default-test</id> 
       <configuration> 
        <skip>true</skip> 
       </configuration> 
      </execution> 

या तो एक ही प्रभाव पड़ेगा, हालांकि <id>unit-tests</id><id>default-test</id> का हल थोड़ा अधिक performant के रूप में आप केवल दो को लागू करने की जरूरत है हो जाएगा surefire के निष्पादन।

दूसरी बात यह है कि मैं बताऊंगा कि आप अपने एकीकरण परीक्षण निष्पादित करने के लिए मेवेन-असफलता-प्लगइन का उपयोग करना बेहतर होगा क्योंकि कुछ समय पर आप कुछ सामान पूर्व & पोस्ट एकीकरण परीक्षण, और असफलता करना चाहते हैं उस उपयोग के मामले के लिए डिज़ाइन किया गया है (हालांकि लाइन को और नीचे स्विच करने के लिए यह छोटा होना चाहिए)

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