2012-03-23 18 views
12

पायचर्म के पास Django परीक्षण लक्ष्यों के लिए "कवरेज के साथ रन" कार्रवाई है। यह परीक्षण चलाता है, लेकिन शून्य परीक्षण कवरेज (0% फाइलें, प्रोजेक्ट फलक में शामिल नहीं है, और संपादक में सभी लाल) दिखाता है। "बंडल cover.py का उपयोग करें" की जांच या अनचेक करने से कोई फर्क नहीं पड़ता।पायचर्म, डीजेगो: शून्य कोड कवरेज

$ coverage --version 
Coverage.py, version 3.5.1. http://nedbatchelder.com/code/coverage 


$ coverage run ./manage.py test blackbox 
Creating test database for alias 'default'... 
.... 
---------------------------------------------------------------------- 
Ran 4 tests in 0.002s 

OK 
Destroying test database for alias 'default'... 


$ coverage report 
Name      Stmts Miss Cover 
--------------------------------------------- 
__init__      0  0 100% 
blackbox/__init__    0  0 100% 
blackbox/models    5  0 100% 
blackbox/rules/__init__  1  0 100% 
blackbox/rules/board   62  19 69% 
blackbox/tests    49  6 88% 
manage      11  4 64% 
settings      24  0 100% 
--------------------------------------------- 
TOTAL      152  29 81% 

यह क्या कारण हो सकता है:

CLI से चल रहा है एक ही परीक्षण अपेक्षित परिणाम देता है?

उत्तर

1

मैं ने वही समस्या PyCharm बंडल coverage.py

परीक्षण ठीक चल रहे थे का उपयोग कर किया था, लेकिन कवरेज परिणाम, लोड नहीं किया गया "0%" या हर जगह "कवर नहीं"।

परीक्षण के उत्पादन में निम्नलिखित हालांकि PyCharm कंसोल में लॉग इन एक त्रुटि,, नहीं था कि coverage.py संबंधित था:

/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python 
"/Applications/PyCharm 2.5 EAP.app/helpers/run_coverage.py" 
run "--omit=/Applications/PyCharm 2.5 EAP.app/helpers" bin/test 

Creating test database for alias 'default'... 
................................ 
---------------------------------------------------------------------- 
Ran xx tests in xxs 

OK 
No source for code: '/path/file.py' (<- error) 

Process finished with exit code 0 

मेरे समाधान के लिए विकल्प के साथ बंडल coverage.py चलाने के लिए था त्रुटियों को अनदेखा करें: "-i"।

मैं संपादित किया है बंडल "run_coverage.py" फ़ाइल, आप कंसोल उत्पादन में इसकी स्थिति देख सकते हैं, और अंतिम पंक्ति में "मैं" विकल्प जोड़ें:

main(["xml", "-o", coverage_file + ".xml"]) 

रहे हैं:

main(["xml", "-i", "-o", coverage_file + ".xml"]) 

यह मेरे लिए काम करता है, त्रुटि को अनदेखा किया जाता है और सभी कवरेज डेटा अब यूआई में लोड किए जाते हैं।

यदि "-i" का उपयोग करना आपके पक्ष में समस्या का समाधान करता है, तो त्रुटियों को ठीक करने के लिए एक बेहतर समाधान होगा, लेकिन तब तक, आप कवरेज परिणाम देखेंगे।

+0

विस्तृत उत्तर के लिए धन्यवाद। यह कंसोल में आउटपुट है: http: // पेस्टबिन।com/aWdaETJh यह कहता है "हो गया: कंसोल के ऊपर x का x (x.xx s)" पैनल पर। ऐसा लगता है कि आउटपुट का हिस्सा PyCharm द्वारा निगल लिया गया है, जिसमें कोई भी त्रुटि शामिल है। क्या वह वास्तव में हो सकता है? – abesto

+0

मैंने -i विकल्प जोड़ा है (इसे पहले से होना चाहिए, अन्यथा यह "-i" नामक फ़ाइल में आउटपुट लिखने का प्रयास करता है)। इसने इस मुद्दे को ठीक नहीं किया, इसलिए मुझे लगता है कि यहां कुछ और गलत है। – abesto

+0

मुझे एक समान समस्या थी। मेरे लिए यह तय किया गया कि मेरी प्रोजेक्ट सेटिंग्स में "बंडल कवरेज.py" अनचेक कर रहा था और मेरे वर्चुअलएन्व में 'पाइप इंस्टॉल कवरेज' इंस्टॉल कर रहा था। –

0

मैं उबंटू में इस मुद्दे को हल करने का भी प्रयास कर रहा हूं।

इस समय मैंने बिना किसी सफलता के पाइथन और एनथॉट कैनोपी स्टैक दोनों के साथ प्रयास किया। विंडोज में हालांकि यह काम करता है (Canopy का उपयोग कर)।

मैं निम्नलिखित कोड का उपयोग किया है:

# in a.py 
class A(object): 

    def p(self, a): 
     return a 

# in test_a.py 
from unittest import TestCase, main 
from a import A 

class TestA(TestCase): 
    def test_p(self): 
     inst = A() 
     val = inst.p("a") 
     self.assertEqual("a", val) 


if _name_ == "__main__": 
    main() 
0

मैं एक ऐसी ही समस्या हुई। मैं nosetests --cover-xml का उपयोग कर XML डेटा पैदा करने समाप्त हो गया है, लेकिन आप भी coverage xml

फिर उस रिपोर्ट आसानी से PyCharm/विचार में लोड किया जा सकता के साथ पिछले एक coverage.py रन से एक xml उत्पन्न कर सकते हैं का विश्लेषण करें -> दिखाएँ कवरेज डाटा ... - > + बटन और एक्सएमएल फ़ाइल का चयन करें।

0

यदि आप पथ में किसी भी सिम्लिंक के माध्यम से अपनी परियोजना तक पहुंचते हैं, तो कवरेज डिस्प्ले विफल हो जाएगा।

वास्तविक पथ के माध्यम से एक ही प्रोजेक्ट खोलने का प्रयास करें, और आपको सही व्यवहार मिलेगा।

https://youtrack.jetbrains.com/issue/PY-17616

पुनश्च: पुराने सवाल रिफ्रेशिंग के रूप में बग अभी भी तय नहीं किया गया है।

संबंधित मुद्दे