के साथ stdlib लॉगिंग को कैसे जोड़ सकता हूं, मैं अपने कुछ मॉड्यूल का परीक्षण करने के लिए py.test का उपयोग कर रहा हूं जिसमें स्टडीलिब लॉगिंग का थोड़ा सा हिस्सा है। मैं निश्चित रूप से लॉगिंग के लिए लॉगिंग करना चाहता हूं, जो py.test द्वारा कैप्चर किया गया है, ताकि परीक्षण में विफल होने पर मुझे सभी प्रासंगिक लॉगिंग संदेश मिल जाएंगे।मैं py.test
समस्या यह है कि लॉगिंग मॉड्यूल के बाद py.test द्वारा प्रदान की गई 'stdout'-object' पर संदेशों को लॉग करने का प्रयास कर रहा है, यह ऑब्जेक्ट py.test द्वारा छोड़ा गया है। जो है, मैं:
Traceback (most recent call last):
File "/usr/lib/python2.6/atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "/usr/lib/python2.6/logging/__init__.py", line 1508, in shutdown
h.flush()
File "/usr/lib/python2.6/logging/__init__.py", line 754, in flush
self.stream.flush()
ValueError: I/O operation on closed file
अगर मैं -s
साथ कब्जा करने की बारी है, मैं किसी भी समस्या नहीं है, लेकिन निश्चित रूप से है कि परीक्षण उत्पादन अप्रासंगिक प्रवेश के साथ पढ़ने योग्य नहीं बनाता है।
क्या कोई मुझे py.test के साथ stdlib लॉगिंग को एकीकृत करने का उचित तरीका बता सकता है?
(मैं this, जहां ऐसा लगता है कि यह सिर्फ मुद्दों के बिना काम करना चाहिए पर देख रहे हैं की कोशिश की, तो यह मुझे बहुत मदद नहीं की)
आप हमें कैसे आप अपने py.test कोड चलाने दिखा सकता है? यदि ऐसा होता है तो यह होना चाहिए कि लॉगिंग कॉन्फ़िगर किया गया है और py.test से पहले प्रारंभ किया गया है, लेकिन यह तब नहीं होना चाहिए यदि आप py.test निष्पादन योग्य के माध्यम से कोड चलाते हैं। –
मैं इसे मूल कमांड लाइन 'py.test' का उपयोग करके चलाता हूं और इसे चीजों को एकत्रित और चलाने देता हूं। – porgarmingduod