2011-10-17 11 views
6

मैं एक JUnit 4 टेस्ट स्वीट कि जिस क्रम में वे चलाने के लिए की जरूरत है परीक्षण कक्षाओं का एक संख्या में शामिल मिल गया है का उपयोग कर (हमारे एकीकरण परीक्षण एक में चलाने के लिए की जरूरत है निश्चित आदेश)।Maven में एक JUnit4 टेस्ट सुइट रनिंग Maven-फेल सेफ-प्लगइन

अगर मैं किसी भी विन्यास के बिना Maven-फेल सेफ-प्लगइन का उपयोग यह परीक्षण चलेगा, लेकिन सही क्रम में नहीं। हालांकि, अगर मैं परीक्षण सूट चलाने के लिए प्लगइन सेट करता हूं तो कोई परीक्षण नहीं चलाया जाता है।

क्या असफल प्लगइन का उपयोग कर एक परीक्षण सूट चलाने के लिए संभव है? यदि हां, तो मैं गलत कहां गया हूं !!

कोड के नीचे है:

@RunWith(Suite.class) 
@SuiteClasses({ 
    TestCase1.class, 
    TestCase2.class, 
     ... 
    TestCaseN.class, 
}) 
public class IntegrationSuite { 
    //Do Nothing. 
} 

और pom.xml से:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <version>2.9</version> 
    <configuration> 
     <includes> 
      <include>IntegrationSuite.java</include> 
     </includes> 
    </configuration> 
    <executions> 
     <execution> 
      <id>integration-test</id> 
      <goals> 
       <goal>integration-test</goal> 
      </goals> 
    </execution> 
    <execution> 
     <id>verify</id> 
     <goals> 
      <goal>verify</goal> 
     </goals> 
    </execution> 
</executions> 
</plugin> 

धन्यवाद :)

उत्तर

10

फेलसेफ प्लगइन संस्करण 2.7 (काफी हाल ही में) के बाद से runOrder (click) पैरामीटर का समर्थन करता है। वहाँ कई विकल्प नहीं हैं, आप स्पष्ट रूप से निर्दिष्ट नहीं कर सकते हैं, लेकिन आप इसे करने के लिए "वर्णमाला" की स्थापना की और अपने परीक्षण वर्गों का नाम बदलने रन आदेश प्रतिबिंबित करने के लिए कर सकते हैं।

मई मैं इस अवसर पर भी कह सकता हूं कि तथ्य यह है कि परीक्षण एक दूसरे पर निर्भर करता है (परीक्षण) कोड गंध; यह अच्छा नहीं है, क्योंकि यह परीक्षणों के एक अनजान सेट को विकसित करने और अंततः इसे छोड़ने का एक छोटा रास्ता है जब इसकी जटिलता मानवीय समझ से ऊपर है। इसके अलावा यह बग का पर्दाफाश करने में असफल हो सकता है, क्योंकि यह एक चुने हुए निष्पादन पथ का परिणाम है।

Btw, मैं इस तरह परीक्षण शामिल करने के लिए पसंद करते हैं, एक डबल तारांकन:

<includes> 
    <include>**/IntegrationSuite.java</include> 
</includes> 
+0

अपने जवाब के लिए धन्यवाद! परीक्षण के लिए खुद को चलाने के लिए एक-दूसरे पर भरोसा नहीं करते, फिर भी उनकी चलाने के आदेश परीक्षण का ब्यौरा लिखित एक दस्तावेज ... नहीं मेरे निर्णय के द्वारा निर्धारित किया गया है, लेकिन मैं अभी भी इसे लागू करने के लिए मिला है !! –

+0

अब @HeavyMetalKid मैं इसके बारे में सोचते हैं, कैसे अचूक/फेलसेफ खोजने परीक्षण मामले, सुइट्स शायद समर्थित नहीं हैं पर आधारित है। हालांकि, मैं एक कठिन सबूत नहीं दे सकता। – MaDa

+0

जो मैंने पढ़ा है, उससे जवाब देने के दौरान मुझे लगता है कि आप सही हो सकते हैं। मैं इसके बजाय आपके रनऑर्डर + वर्णमाला नामकरण विचार की कोशिश कर रहा हूं। धन्यवाद –

0

Maven-अचूक-प्लगइन भी कोड नीचे के रूप में इस्तेमाल किया जा सकता:

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-surefire-plugin</artifactId> 
<version>2.12.4</version> 
<configuration> 
<includes> 
<include>**/IntegrationSuite.java</include> 
</includes> 
</configuration> 
</plugin>  
संबंधित मुद्दे