मुझे लगता है कि आप सभी चेतावनियों को छिपाना नहीं चाहते हैं, लेकिन सिर्फ वही जो प्रासंगिक नहीं हैं। और इस मामले में, आयातित अजगर मॉड्यूल से चेतावनी चेतावनी।
चेतावनियों पर कब्जा करने के बारे में कई दस्तावेज़ों को पढ़ने के बाद :
दोनों -W कमांड-लाइन विकल्प और फ़िल्टररिंग इनआई विकल्प पायथन के अपने- डब्ल्यू विकल्प और चेतावनियों पर आधारित हैं । इसलिए, कृपया अन्य उदाहरणों और उन्नत उपयोग के लिए पायथन प्रलेखन में उन वर्गों को देखें।
तो आप अजगर के -W
विकल्प के साथ चेतावनी को फ़िल्टर कर सकते हैं !
ऐसा लगता है कि pytest
फिल्टर को पूरी तरह से हटा देता है, क्योंकि यह उन सभी को दिखाता है DeprecationWarning
जब चल रहा है, और डिफ़ॉल्ट चेतावनी फिल्टर के बारे में पायथन के दस्तावेज स्पष्ट रूप से कहते हैं:
नियमित रिलीज़ बिल्ड में, डिफ़ॉल्ट चेतावनी फ़िल्टर में निम्न प्रविष्टियाँ होती हैं (पूर्ववर्ती क्रम में):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
तो आपके मामले में, यदि आप चाहते हैं कि आप उन प्रकार की चेतावनी को फ़िल्टर करने के लिए कहें जिन्हें आप अनदेखा करना चाहते हैं, जैसे कि DeprecationWarning
, तो बस -W
विकल्प के लिए pytest कमांड चलाएं :
$ pytest path-to-test-folder -W ignore::DeprecationWarning
EDIT : कॉलिनी की टिप्पणी से, मॉड्यूल द्वारा फ़िल्टर करना संभव है। सभी sqlalchemy से पदावनति चेतावनियों को अनदेखा करने के लिए उदाहरण:
ignore::DeprecationWarning:sqlalchemy.*:
फिर आप अपने स्थापित मॉड्यूल को सूचीबद्ध कर सकते हैं जो के आउटपुट में बहुत अधिक शोर पैदा करता है pytest
कमांड लाइन के बजाय फाइल के साथ प्रयोग करें:
आप उन फिल्टर को pytest.ini फ़ाइल में सूचीबद्ध करना पसंद कर सकते हैं:
[pytest]
filterwarnings =
ignore::DeprecationWarning