के साथ एकीकरण परीक्षण के लिए कैश नहीं किया गया है जब एकीकरण परीक्षण आईडीई एप्लिकेशंस कॉन्टेक्स्ट से केवल एक बार लोड होता है और फिर परीक्षणों के बीच साझा किया जाता है और यह अपेक्षित के रूप में काम करता है। लेकिन प्रत्येक परीक्षण के लिए mvn clean install
नया एप्लिकेशंस कॉन्टेक्स्ट निष्पादित किया गया। Spring doc अनुसार मैं Maven-फेल सेफ-प्लगइन कॉन्फ़िगर कर दिया है एक कांटास्प्रिंग एप्लिकेशन कॉन्टेक्स्ट मैवेन
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<forkCount>1</forkCount>
<reuseForks>true</reuseForks>
...
उपयोग करने के लिए ApplicationContext followin एनोटेशन इस्तेमाल किया कैश करने के लिए:
@ContextConfiguration(classes = TestConfig.class)
जब Maven के साथ आवेदन का निर्माण क्यों संदर्भ साझा नहीं किया? असल में आईटी परीक्षणों को गति देने का कोई और तरीका है? धन्यवाद।
UPDATED:
यह multimodule Maven परियोजना है। Accordig Spring IT caching doc
कैशिंग तंत्र का लाभ उठाने के सभी परीक्षणों एक ही प्रक्रिया या टेस्ट स्वीट भीतर चलाना चाहिए। यह आईडीई के भीतर एक समूह के रूप में सभी परीक्षण निष्पादित करके हासिल किया जा सकता है। इसी प्रकार, के साथ परीक्षण निष्पादित करते समय एंटी, मेवेन, या ग्रैडल जैसे ढांचे का निर्माण करना सुनिश्चित करना महत्वपूर्ण है कि निर्माण ढांचे परीक्षणों के बीच कांटा नहीं है। उदाहरण के लिए, यदि मेवेन सरेफायर प्लग-इन के लिए फोर्कमोड पर हमेशा या पीछे सेट किया गया है, तो टेस्टकॉन्टेक्स्ट फ्रेमवर्क परीक्षण कक्षाओं और निर्माण प्रक्रिया के बीच अनुप्रयोग संदर्भों को कैश करने में सक्षम नहीं होगा परिणामस्वरूप काफी धीमी गति से चलेंगे।
तो maven-failsafe-plugin 2.14 के लिए इस config के बराबर होती है forkMode = एक बार
क्या आप अपनी टेस्ट कॉन्फ़िगरेशन और समग्र संरचना –
@AliDehghani के बारे में अधिक जानकारी जोड़ सकते हैं वर्तमान में मैं एकल मॉड्यूल में परीक्षण चलाता हूं। जब स्थानीय एनवी में यह दृश्यवर्म के साथ जांच कर सकता है कि कभी साझा संदर्भ नहीं है लेकिन यह 2000+ धागे (जबकि फोर्कमोड = लगभग 20 बार) बनाता है, तो कई परीक्षण विफलताओं –
njjnex
क्या आपने 'threadCount = 1' सेट करने का प्रयास किया था? –