मेरे पास निम्न जैसे स्केलटेस्ट कोड हैं:

class myTest extends FlatSpec with ParallelTestExecution {  

    val testSuiteId: String = GenerateSomeRandomId() 

    it should "print test id" in { 
        println(testSuiteId)
    } 

    it should "print test id again" in { 
        println(testSuiteId) 
    }
} 

दो परीक्षण उनके सामने उत्पन्न testSuiteId को मुद्रित नहीं कर सकते हैं। इसके बजाय वे आईडी को पुन: उत्पन्न करते हैं और इसे प्रिंट करते हैं। मैं समझता हूं कि ParallelTestExecution के कारण जो OneInstancePerTest का विस्तार करता है, यहां प्रत्येक परीक्षण अपने उदाहरण पर चलता है और चर "testSuiteId" की एक प्रति है।

लेकिन मैं इस परीक्षण सूट के लिए एक निश्चित आईडी चाहता हूं और इस सूट में प्रत्येक परीक्षण मामले में इसे संशोधित किए बिना इसे तय करने की पहुंच है। मैंने पहले सभी {} में निश्चित आईडी बनाने की कोशिश की लेकिन फिर भी यह काम नहीं किया।

मुझे जो चाहिए वो कैसे हासिल करना चाहिए?

2
yay1 12 सितंबर 2017, 00:54
आपको ParallelTestExecution की आवश्यकता क्यों है?
 – 
pedromss
12 सितंबर 2017, 23:43
नमस्ते, मैं बस समानांतर में सभी परीक्षण चश्मा चलाना चाहता हूं। क्या ऐसा करने का कोई बेहतर तरीका है?
 – 
yay1
20 अक्टूबर 2017, 02:01

1 उत्तर

सबसे बढ़िया उत्तर

इसके आसपास काम करने का एक तरीका साझा स्थिति को किसी प्रकार की बाहरी वस्तु में रखना होगा:

object SuiteId {
  lazy val id: String = GenerateSomeRandomId()
}

माना जाता है कि यह बहुत हैक है, और मुझे आश्चर्य नहीं होगा अगर स्केलटेस्ट के पास इस अंतर्निहित को संभालने का कोई तरीका है जिसमें मैं अनजान हूं।

0
Joe K 12 सितंबर 2017, 02:07
आपको धन्यवाद! मेरे पास अब तक का सबसे अच्छा समाधान है। ऐसा करने के लिए अब भी स्केलेस्ट-वे पर जांच करेंगे।
 – 
yay1
28 सितंबर 2017, 22:52