मैं परीक्षण विफलताओं का आत्मनिरीक्षण करने की कोशिश कर रहा हूं और जूनिट एक्सएमएल परीक्षण रिपोर्ट में अतिरिक्त डेटा शामिल कर रहा हूं। विशेष रूप से, यह बाहरी उत्पाद पर कार्यात्मक परीक्षणों का एक सूट है, और मैं विफलता रिपोर्ट में उत्पाद के लॉग शामिल करना चाहता हूं।अनुकूलन pytest junitxml विफलता रिपोर्ट
here मिली विधि का उपयोग करके, मैं मल्टीकॉल को निष्पादित करने से पहले stdout पर लॉग प्रिंट करने में सक्षम था जो आखिरकार जेनकिन की विफल रिपोर्ट में दिखाया गया था। लेकिन मुझे यकीन है कि इसे हासिल करने का एक बेहतर तरीका है।
मैंने लॉग को 'सेक्शन' विशेषता में जोड़ने के लिए pytest_runtest_logreport हुक का उपयोग करने का प्रयास किया, जिसमें पहले से ही 'कैप्चर स्टडआउट' और 'कैप्चर स्टडर' स्ट्रीम शामिल हैं। लेकिन नए जोड़े गए अनुभाग इसे xml फ़ाइल में नहीं बनाते हैं। मैंने उपरोक्त तकनीक को सीधे pytest_runtest_makereport हुक में भी इसी तरह के परिणामों के साथ करने की कोशिश की।
पायस्टेस्ट 2.7 के लिए रिलीज नोट्स का कहना है कि मल्टीकॉल समर्थन का उपयोग 2.8 के लिए किया जा रहा है और @ pytest.mark.hookwrapper इसे करने का नया तरीका है, हालांकि मैं यह काम बिल्कुल नहीं कर सकता - "उपज" रिटर्न किसी कॉलऑट्यूम ऑब्जेक्ट के बजाय कोई नहीं (इसे मेकपोर्टपोर्ट हुक में आज़माएं)। और यहां तक कि अगर यह कुछ लौटा, तो मुझे यकीन नहीं है कि मैं इसमें सामान जोड़ सकता हूं जो एक्सएमएल रिपोर्ट में दिखाई देगा।
क्या कोई कार्यक्षमता है जो मुझे याद आ रही है जो मुझे इसे लचीला तरीके से करने देगी? (लचीला से मेरा मतलब है: कैप्चर-लॉग प्लगइन जैसे कॉल या स्टॉग करने के लिए बाध्य नहीं होना)
यह समाधान अब '__multicall__' तर्क के लिए एक बहिष्करण चेतावनी उत्पन्न करता है। मुझे आश्चर्य है कि क्या इससे अच्छी तरह से बचने का कोई तरीका है। एकमात्र चीज जो मैंने करने में कामयाब रहा है वह रिपोर्ट प्राप्त करने के लिए _pytest.runner आयात pytest_runtest_makereport _pytest_runtest_makereport' के साथ इस हुक के सबसे पुराने मूल कार्यान्वयन को कॉल करना है। – meili