2009-06-08 5 views
17

मैं एंटी में जुनीट को कॉन्फ़िगर कर रहा हूं ताकि यूनिट परीक्षण प्रत्येक बिल्ड पर चलाया जा सके। मैं के आउटपुट को परीक्षणों को विफल करना चाहूंगा जब भी वे चलाए जाते हैं तो एंटी कंसोल आउटपुट में मुद्रित किए जाने वाले परीक्षण। मुझे सफल परीक्षणों से कोई आउटपुट देखने की ज़रूरत नहीं है।मैं केवल असफलताओं पर आउटपुट उत्पन्न करने के लिए जुनीट चींटी कार्य को कैसे कॉन्फ़िगर कर सकता हूं?

यहाँ है मेरी build.xml फ़ाइल के प्रासंगिक बिट:

<junit> 
    <classpath> 
     <pathelement path="${build}"/> 
    </classpath> 
    <formatter type="brief" usefile="false"/> 
    <batchtest> 
     <fileset dir="${src}" includes="my/tree/junit/"/> 
    </batchtest> 
</junit> 

यह पैदा करता है मैं लगभग क्या चाहते हैं, ऐसा न करने परीक्षण चींटी उत्पादन में विस्तृत हो, सिवाय इसके कि सफल परीक्षण भी निम्न उत्पादन लिखें:

 [junit] Testsuite: my.tree.junit.ExampleTest 
    [junit] Tests run: 7, Failures: 0, Errors: 0, Time elapsed: 0.002 sec

मेरा मानना ​​है कि मैं सहित JUnit task दस्तावेज़ में सूचीबद्ध सभी संयोजनों की कोशिश की है:

  • printsummary विशेषता
  • showoutput विशेषता type

मेरे उपयोग के मामले के प्रत्येक प्रकार के साथ

  • formatter तत्व कमांड लाइन से ant चल रहा है। जैसे-जैसे मैं और परीक्षण लिखता हूं, मैं नहीं चाहता कि सफल परीक्षणों से उत्पादन इतना बड़ा हो कि स्क्रीन से असफल परीक्षणों से उत्पादन स्क्रॉल हो। मैं सिर्फ ant चुप रहना चाहता हूं जब तक कि एक असफल परीक्षण न हो जिस पर मेरा ध्यान रखना चाहिए। ऐसा करने के लिए मैं एंट/जुनीट को कैसे कॉन्फ़िगर कर सकता हूं?

    मैं चींटी संस्करण 1.6.4 और जुनीट 4.6 का उपयोग कर रहा हूं।

  • +0

    बस कस्टम जुनीट कस्टम टेस्ट रनर संभावना जोड़ा गया। – VonC

    उत्तर

    13

    एक संभावना है कि आप अपने स्वयं के एक्सएमएल फॉर्मेटर को 'classname' विशेषता (और org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter बढ़ाकर endTest() or endTestsuite() methods पर कुछ भी नहीं कर रहे हैं) को परिभाषित करना होगा।
    वह फ़ॉर्मेटर जानकारी संदेश को अनदेखा कर देगा और केवल विफलता संदेशों को प्रदर्शित करेगा।


    नोट:

    <junit showoutput="true" 
         fork="true" 
         failureproperty="tests.failed" 
         errorproperty="tests.failed"> 
        <batchtest todir="${test.results.dir}"> 
         <fileset dir="test"> 
          <include name="**/*Test.java"/> 
         </fileset> 
        </batchtest> 
        <classpath path="${classes.dir}:${junit.jar}:${test.classes.dir}"/> 
        <formatter usefile="false" type="brief"/> 
        <!-- <formatter type="xml"/> If missing, only displays failed tests --> 
    </junit> 
    

    आपको लगता है कि परीक्षण किया था: this settings केवल प्रदर्शित विफल रहा है परीक्षण करने की संभावना का उल्लेख?

    नोट: "showoutput="true" और <formatter type="brief" usefile="false"/>" थोड़ा समस्याग्रस्त है, के रूप में इस recent (February 2012) ticket)


    फिर भी एक और approch द्वारा सचित्र अपने चींटी Juint टेस्ट धावक परिभाषित करने के लिए किया जाएगा हो सकता है, चींटी JUnitResultFormatter समर्थन और केवल stderr संदेश प्रदर्शित करना।

    ग्रहण से EclipseTestRunner एक अच्छा उदाहरण है।

    +0

    बहुत अच्छा जवाब! – guerda

    +0

    धन्यवाद, आपके द्वारा दिखाया गया उदाहरण अनिवार्य रूप से वही है जैसा मैंने अपने प्रश्न में पोस्ट किया था, इसलिए मुझे लगता है कि अंतरबीबी संदर्भ में इसे चलाने के साथ अंतर कुछ हो सकता है। मैं कस्टम फॉर्मेटर को लागू करने का प्रयास करूंगा लेकिन मुझे ऐसा करने से बचने की उम्मीद थी। –

    +0

    मैंने एक कस्टम फॉर्मेटर लागू किया और मेरा मूल लक्ष्य पूरा करने में सक्षम था। –

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

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