मैं unittest
लाइब्रेरी का उपयोग कर अपने मॉड्यूल का परीक्षण कर रहा हूं। इसमें matplotlib
लाइब्रेरी का उपयोग करके कुछ ग्राफों को साजिश करना शामिल है। इस समय मुद्दा यह है कि जब भी ग्राफ को प्लॉट किया जाता है तो परीक्षण रोकता है, और ग्राफ को बंद करने के बाद ही यह फिर से शुरू होता है। इससे कैसे बचा जा सकता है?unittests चलाते समय ग्राफ बंद करें
उत्तर
मैं matplotlib ट्यूटोरियल से सरल उदाहरण कोड के बाद मेरा उत्तर मॉडल होगा: http://matplotlib.org/users/pyplot_tutorial.html
के हम है निम्नलिखित मॉड्यूल, plot_graph.py
परीक्षण किया जाना मान लेते हैं:
import matplotlib.pyplot as plt
def func_plot():
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
if __name__ == "__main__":
func_plot()
show
के लिए कॉल किया जा सकता है निम्नानुसार पैच किया गया:
from plot_graph import func_plot
from unittest.mock import patch
@patch("plot_graph.plt.show")
def test_plot(mock_show):
assert func_plot() == None
जैसा कि आप देख सकते हैं, आपकोपर कॉल पैच करना चाहिए। आप दस्तावेज़ों में पैचिंग और मॉकिंग के बारे में अधिक जानकारी प्राप्त कर सकते हैं: https://docs.python.org/3/library/unittest.mock.html।
आमतौर पर जहां पैच करने के लिए के बारे में खंड वास्तव में उपयोगी है: https://docs.python.org/3/library/unittest.mock.html#where-to-patch
अंत में वहाँ इसी तरह के सवाल साइट पर पहले से ही कर रहे हैं: How to run nosetests without showing of my matplotlib's graph?
यदि यह परीक्षण में किया जाता है तो pyplot.show()
पर कॉल न करें। documentationshow
फ़ंक्शन पर एक प्रयोगात्मक block=False
कीवर्ड तर्क का उपयोग करने का सुझाव देता है।
'pyplot.show()' को मेरे मॉड्यूल में से एक में बुलाया है, परीक्षण में नहीं। 'ब्लॉक = गलत 'मेरे लिए काम नहीं करता है। मुझे लगता है कि यह बहिष्कृत है। – bluprince13
शायद आपके परीक्षणों से pyplot.close ("all") को कॉल करना चाल चल सकता है। – Lukisn
हैकिंग के बजाय, आप ठोस से एक जिम्मेदारी सिद्धांत का उपयोग करने के लिए कोशिश कर सकते हैं और टेस्टेबल कोड लिखें, ताकि आप इस तरह की परेशानियों में न आएं। बस एक विचार ...
- 1. unittests
- 2. xCode क्रैशिंग अनुप्रयोग चलाते समय
- 3. वेबलॉगिक javax.naming.NameNotFoundException अनुप्रयोग चलाते समय
- 4. कुंजीपटल फ़ंक्शन चलाते समय आईओएस कीबोर्ड खोलें
- 5. phantomjs casperjs चलाते समय मैन्युअल इनपुट
- 6. Hadoop चलाते समय OutOfMemoryException से कैसे बचें?
- 7. दो ग्राफ के खिलाफ एक sparql क्वेरी चलाते हैं?
- 8. इकाई परीक्षण चलाते समय Django दक्षिण अक्षम करें?
- 9. यूनिट परीक्षण चलाते समय निर्देशिका कैसे प्राप्त करें
- 10. IntelliJ IDEA: कोड कवरेज चलाते समय पैकेज बहिष्कृत करें
- 11. सीएसएच स्क्रिप्ट चलाते समय पाइथन पासवर्ड दर्ज करें
- 12. Django collectstatic चलाते समय निर्देशिका को अनदेखा कैसे करें?
- 13. django में "syncdb" चलाते समय स्कीमा नाम कैसे निर्दिष्ट करें?
- 14. यूनिट परीक्षण चलाते समय विंस्टन लॉगिंग अक्षम करें?
- 15. कैलाबैश परीक्षण चलाते समय बैकएंड इंटरैक्शन का नकल कैसे करें
- 16. स्क्रैप स्पाइडर चलाते समय स्कैरेड इनिट त्रुटि
- 17. फिर फ़ंक्शन चलाते समय यह वैश्विक सरणी
- 18. अपलोडर स्क्रिप्ट चलाते समय विभिन्न परिणाम
- 19. एसआरएलआईटी स्टेटमेंट्स चलाते समय जेआरई क्रैश
- 20. दृश्य स्टूडियो प्रोजेक्ट चलाते समय आंतरिक त्रुटि
- 21. AndroidHttpClient नहीं मिला (रोबोलेक्ट्रिक चलाते समय)
- 22. एनपीएम त्रुटि ELIFECYCLE परीक्षण चलाते समय
- 23. पाइथन setup.py चलाते समय फोर्स कंपाइलर
- 24. स्कैला जार फ़ाइल चलाते समय NoClassDefFoundError
- 25. रेल सर्वर चलाते समय कोई 'jcode' मणि
- 26. "स्पार्क कॉन्टेक्स्ट बंद हो गया था" एक बड़े डेटासेट पर स्पार्क चलाते समय
- 27. NoMethodError: rspec चलाते समय अपरिभाषित विधि 'प्राप्त करें' और कॉल प्राप्त करें/विज़िट करें
- 28. समय के निश्चित अंतराल के साथ ग्राफ/साजिश अपडेट करें
- 29. पायथन कई सेटअप के साथ unittests?
- 30. आईफोन यूनिट परीक्षण चलाते समय मेमोरी लीक ढूंढना
मैंने अपने पिछले उत्तर को उदाहरण के साथ –