मैं उस समय को कम करना चाहता हूं जो हमारे निर्माण (चींटी का उपयोग करके) परीक्षण चलाने के लिए लेता है। वर्तमान में मैं डिफ़ॉल्ट forkMode
का उपयोग कर रहा हूं, जो प्रत्येक टेस्ट क्लास (perTest
) पर एक नया वीएम फोर्क करता है।जूनिट: फोर्कमोड = "एक बार" परीक्षण शुद्धता पर
मैं के बारे में forkMode="once"
करने के लिए स्विच करने के लिए सोच रहा हूँ, लेकिन मैं को लेकर अनिश्चित हूं कि अगर यह इच्छा जोड़ी परीक्षण किसी भी तरह और शायद मेरी परीक्षण चलाने के बाद मुझे झूठी सकारात्मक और/या मिथ्या नकारात्मक परिणाम देती है।
सवाल:
प्रत्येक परीक्षण का मामला इतना है कि पिछले रन से सभी स्थिर संदर्भ अब और सुलभ/दिखाई नहीं देते हैं एक नया classloader हो जाएगा?
वहाँ अन्य बातों के परीक्षण तरीकों जो व्यवहार बदल सकते हैं (देशी पुस्तकालय लोड हो रहा है बगल में जो मैं उपयोग नहीं कर रहा)
- क्या कचरा संग्रहण/अंतिम रूप दिए जाने के बारे में, वे कर रहे हैं की निर्भरता/युग्मन का परीक्षण करने के लिए नेतृत्व जो कर रहे हैं प्रत्येक परीक्षण के बाद भागो? (मैं उन पर भरोसा नहीं है, लेकिन मैं सिर्फ एक पूरी तस्वीर प्राप्त करना चाहते हैं)
अद्यतन
वर्तमान जवाब के अनुसार ऐसा लगता है कि JUnit हमेशा के बीच एक भी classloader साझा कर रहा है फोर्कमोड का उपयोग करते समय प्रति vm/कांटा के सभी परीक्षण मामले।
यह कई फायदे हैं (तेज परीक्षण और परीक्षण स्थिर युग्मन के कारण विफल हो सकता है), लेकिन यह भी कुछ नुकसान (स्थिर युग्मन जो केवल काम करेगा (forkMode तो = "एक बार" वास्तव में वहाँ सभी परीक्षणों के लिए एक classloader का मतलब) यदि एक साझा classloader प्रयोग किया जाता है -> झूठी सकारात्मक)
अद्यतन एक नए प्रश्न की तरह लगता है और मौजूदा उत्तरों को – oers
अच्छा विचार से बाहर लगता है। नए प्रश्न यहां पाए जा सकते हैं: http://stackoverflow.com/questions/6321473/junit-how-to-avoid-false-positives-when-using-forkmode-once – MRalwasser
आपका अपडेट थोड़ा भ्रामक है। JUnit 'forkMode = "का उपयोग करते समय सभी परीक्षण मामलों के बीच एक क्लासलोडर साझा कर रहा है, लेकिन अन्य फोर्क मोडेस नहीं, क्योंकि आप चल रहे वीएम –