2015-07-30 8 views
23

पर तेजी से विफल होने के लिए एसबीटी प्राप्त करने के लिए सेट करना मैं एक बहु-परियोजना एसबीटी (v0.13) निर्माण चला रहा हूं और इसे पहले त्रुटि (संकलन) में विफल होने पर विफल होना चाहता हूं उप-परियोजना।एसबीटी को

वर्तमान व्यवहार यह है कि जब कोई उप-प्रोजेक्ट में संकलन करने में विफल रहता है तो यह अन्य सभी उप-परियोजनाओं को संकलित करना जारी रखता है।

क्या संकलन त्रुटि के साथ पहले उप-प्रोजेक्ट के रूप में जल्द ही एसबीटी स्टॉप/निकास बनाने का कोई तरीका/सेटिंग है?

उत्तर

6

मेरे ज्ञान के लिए एसबीटी इस पर नियंत्रण नहीं करता है। जब एसबीटी आपके यूनिट परीक्षणों का निरीक्षण करता है तो उचित परीक्षण ढांचे का आह्वान करने जा रहा है। परीक्षण ढांचा तब तय कर सकता है कि परीक्षणों को चलाने के क्रम में, उन्हें एक साथ चलाने के लिए, मुद्दों की रिपोर्ट कैसे करें आदि। बेशक प्रत्येक टेस्ट फ्रेमवर्क की अपनी विशेषताएं, कॉन्फ़िगरेशन और सम्मेलन होते हैं। स्कैला के लिए दो सबसे व्यापक रूप से उपयोग किए जाने वाले टेस्ट फ्रेमवर्क स्कालाटेस्ट और स्पेक्स 2 हैं।

सौभाग्य से आप स्पीक्स 2 या स्कैलाटेस्ट में आपके द्वारा अनुरोधित व्यवहार प्राप्त कर सकते हैं। मैंने नीचे सरल यूनिट परीक्षण उदाहरण प्रदान किए हैं जो जल्दी विफल हो जाते हैं।

ScalaTest

आप CancelAfterFailure विशेषता में मिश्रण से एक परीक्षण सूट के लिए ScalaTest में असफल फास्ट व्यवहार प्राप्त कर सकते हैं। उदाहरण के लिए, यह परीक्षण पहले परीक्षण को निष्पादित करेगा, दूसरा विफल होगा, और तीसरे को रद्द के रूप में दिखाएगा।

class SomeSuite extends FunSuite with CancelAfterFailure with Assertions { 

    test("first") { 
    println("first") 
    } 

    test("second") { 
    assert(false) 
    } 

    test("third") { 
    println("third") 
    } 
} 

Specs2

आप प्रति-विशिष्टता के आधार पर Specs2 में व्यवहार को नियंत्रित कर सकते हैं ScalaTest की ही तरह। असफल-तेज़ी से व्यवहार करने के लिए आपको अपने विशिष्टता में दो तर्क जोड़ने की आवश्यकता है: sequential और stopOnFail। आपके द्वारा सेट किए गए तर्कों की पूरी सूची के लिए the docs देखें। (आप की क्या ज़रूरत है दोनों आप एक स्पष्ट रैखिक आदेश Specs2 के बाद से अपने परीक्षण समवर्ती निष्पादित करेंगे डिफ़ॉल्ट रूप से चाहते हैं!)

class SomeSpec extends Specification { 

    sequential 
    stopOnFail 

    "specs2" should { 
    "first" in { 
     println("first") 
     ok 
    } 

    "second" in { 
     "foo" must equalTo ("bar") 
    } 

    "third" in { 
     println("third") 
    } 
    } 
} 
+0

ओपी परीक्षण समय पर नहीं संकलन समय पर तेजी से नाकाम रहने के बारे में पूछ रहा था। –