2012-11-29 11 views
6

मैंने यहां से pytest के लिए प्लगइन स्थापित किया है: http: //pypi.python.org/pypi/pytest-cov।पायटेस्ट और कवरेज संयोजन काम नहीं करता

pytest.py:

class TestNumbers: 
    def test_int_float(self): 
     assert 1 == 1.0 

    def test_int_str(self): 
     assert 1 == 1 

मैं आदेश के साथ यह परीक्षण करने के लिए करने की कोशिश की: तो फिर मैं एक साधारण परीक्षण कोड है 'py.test --cov-रिपोर्ट अवधि --cov pytest.py'। लेकिन यह काम नहीं करता है। भले ही मैंने pytest.py का पूरा पूर्ण पथ दिया हो, फिर भी यह एकत्र करने के लिए कोई डेटा नहीं था। हालांकि अगर मैं py.test pytest.py का उपयोग करता हूं, निश्चित रूप से यह ठीक से परीक्षण किया गया है।

मैं इस समस्या के बारे में बहुत उलझन में हूं, मदद के लिए धन्यवाद।

+1

उपनाम "test_" फ़ाइल नाम का उपयोग करें, लेकिन किसी भी मामले में "pytest.py" का उपयोग न करें जो वास्तविक "पायस्टेस्ट" मॉड्यूल को छाया देगा। – hpk42

उत्तर

10

प्रयास करें:

py.test --cov-report term --cov=. test.py 

--cov पैरामीटर एक तर्क कहावत जो रास्तों को कवर करने लग जाते हैं। आपके उदाहरण में, --covtest.py का उपभोग करेगा, लेकिन तब फाइलों के परीक्षण के बारे में py.test के लिए कोई तर्क नहीं छोड़ा गया था।

अद्यतन: @ hpk42 अंक के रूप में, आपको pytest.py के अलावा अपना उदाहरण कुछ कॉल करने की आवश्यकता है। जब मैंने इसे स्थानीय रूप से किया, तो मैंने इसे test.py कहा।

+0

यदि उपयोगकर्ता-मॉड्यूल "pytest.py" है, तो यह काम नहीं करेगा। यह वास्तविक py.test को छाया करता है (क्योंकि आप मददगार/चीजों को आयात करने के लिए "आयात pytest" करते हैं)। – hpk42

+0

Whups ... जो कि मेरे उदाहरण में 'test.py' होना था। आप बिल्कुल बिल्कुल सही हैं। 'py.test' कम से कम एक सभ्य त्रुटि संदेश आउटपुट करता है जो आपको इस समस्या के बारे में सूचित करता है। – jszakmeister

+0

आपको बहुत बहुत धन्यवाद। समस्या यह है कि 'pytest.py' फ़ाइल नाम के रूप में प्रयोग किया जाता है। परिवर्तन के बाद यह सभी परीक्षण ठीक से चला गया। आप जवाब सही है। कमांड "py.test --cov-report term --cov =। Test.py" – user1067671

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