2015-02-13 7 views
5

क्या यह विकल्प छोड़ने के लिए संभव है कि छोड़ने वाले परीक्षणों और रन की कुल परीक्षा संख्या की संख्या गिनती हो। और रन के बाद परीक्षण की संख्या असफल रही (मुझे पता है कि इसे आउटपुट में देखा जा सकता है)। मैं एक json में यह डंप करने के लिए अगर मैं इसे प्रोग्राम के ले कि महानपायथन अनइटेस्ट गिनती परीक्षण

Thx एक बहुत

+1

आपने अभी तक क्या प्रयास किया है? कृपया यहां पढ़ें: http://stackoverflow.com/help/how-to-ask – aberna

+0

ने अभी तक अनजान की कार्यक्षमता की खोज करने की कोशिश की है, लेकिन यह परीक्षण करने में असमर्थ है कि कौन से परीक्षण छोड़े गए हैं – user3142208

उत्तर

5

कई परीक्षणों और त्रुटियों के बाद, मैं अंत में यह काम कर रहे ...

पर scoffey's answer आधार पर मिला है।

उम्मीद है कि यह मदद करता है।

साथ

python test.py > result.txt 

result.txt

import unittest 

class MyTest(unittest.TestCase): 

    currentResult = None # holds last result object passed to run method 

    @classmethod 
    def setResult(cls, amount, errors, failures, skipped): 
     cls.amount, cls.errors, cls.failures, cls.skipped = \ 
      amount, errors, failures, skipped 

    def tearDown(self): 
     amount = self.currentResult.testsRun 
     errors = self.currentResult.errors 
     failures = self.currentResult.failures 
     skipped = self.currentResult.skipped 
     self.setResult(amount, errors, failures, skipped) 

    @classmethod 
    def tearDownClass(cls): 
     print("\ntests run: " + str(cls.amount)) 
     print("errors: " + str(len(cls.errors))) 
     print("failures: " + str(len(cls.failures))) 
     print("success: " + str(cls.amount - len(cls.errors) - len(cls.failures))) 
     print("skipped: " + str(len(cls.skipped))) 

    def run(self, result=None): 
     self.currentResult = result # remember result for use in tearDown 
     unittest.TestCase.run(self, result) # call superclass run method 

    def testA(self): 
     self.assertTrue(True) # succeeds 

    def testB(self): 
     self.assertTrue(False) # fails 

    def testC(self): 
     self.assertTrue(1 + None is None) # raises TypeError 

    @unittest.skip("skip it") # skipped 
    def testD(self): 
     self.assertTrue("whatever") 

if __name__ == '__main__': 
    unittest.main() 

रन स्क्रिप्ट:

tests run: 3 
errors: 1 
failures: 1 
success: 1 
skipped: 1 

मुझे यकीन है कि यह सबसे अच्छा तरीका है नहीं कर रहा हूँ, लेकिन यह काम कर रहा है। Unittest मॉड्यूल का उपयोग करना आसान है लेकिन मास्टर करने के लिए मुश्किल है, अब मुझे लगता है कि मैं इसके बारे में बहुत कम जानता हूँ।

+0

awsome thx बहुत मदद करता है !!! – user3142208

+0

क्या आप ऊपर उठाना चाहते हैं ... – laike9m

+0

मेरे पास एक नया उत्साह करने के लिए तैयार नहीं है जैसा कि नया है :( – user3142208

1

मैं unittest के लिए JSON में रिपोर्ट करने के लिए किसी भी तरह से नहीं जानते होगा वान चाहते हैं।

nosetests --with-xunit --xunit-file=mytests.xml mytests.py 

यहाँ है इस एक्सएमएल फ़ाइल से एक अंश:

<testsuite name="nosetests" tests="3" errors="0" failures="1" skip="1"> 

आप XML स्वरूप कोई आपत्ति नहीं है, तो यह करने के लिए एक समाधान है मुझे पता है कि nose XML स्वरूप में outputing परिणाम है हूँ विचार करें। मैंने यह भी सुना कि नाक में एक JSON प्लग-इन है, लेकिन अभी तक इसके साथ नहीं खेला है।

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