2011-02-28 15 views
9

में पाइथन यूनिटस्ट रिपोर्टिंग एचटीएमएल प्रारूप में पायथन unittesting रिपोर्ट कैसे उत्पन्न करें।एचटीएमएल

उत्तर

3

किस तरह की रिपोर्ट? मुझे लगता है कि आपका मतलब कवरेज था, क्योंकि यदि आपके पास एक से अधिक असफल इकाई परीक्षण हैं तो आप इसे गलत कर रहे हैं।

Nose पर देखें।

nosetests --with-coverage --cover-html 
+0

कृपया नाक में, एचटीएमएल में एचटीएमएल यूनिटेस्ट रिपोर्ट कैसे उत्पन्न करें .. – passionTime

+0

एचटीएमएल प्रारूप में केवल पास, असफल, छोड़ें और त्रुटि रिपोर्ट, कोड कवरेज रिपोर्ट नहीं – passionTime

+0

मैं इस प्रारूप में चाहता हूं, कृपया यह लिंक प्राप्त करें, http: //tungwaiyip.info/software/sample_test_report.html – passionTime

3

मैं HTML के बारे में पता नहीं है, लेकिन Nose XUnit एक्सएमएल रिपोर्ट बना सकते --with-XUnit विकल्प के माध्यम से।

+0

कुछ स्तर मुझे समाधान पायथन इकाई परीक्षण नाक एचटीएमएल रिपोर्ट पीढ़ी मिला। दिन के अंत तक मुझे लगता है कि मुझे समाधान मिल जाएगा। आपके सभी समर्थन के लिए धन्यवाद .... – passionTime

+2

@ prasanna.yelsangika: "धन्यवाद" [उत्तर के बाईं ओर एक हरे रंग की टिक के रूप में सबसे अच्छा व्यक्त किया गया है जो आपकी समस्या को हल करने में आपकी सहायता करता है] (http://stackoverflow.com/faq# howtoask)। – Johnsyweb

+0

मेरे प्रश्न का उत्तर है http://testoob.sourceforge.net/features.html, इस लिंक में मैंने testoob टूल का उपयोग कर एक्सएमएल/एचटीएमएल प्रारूप में पायथन यूनिट टेस्ट रिपोर्ट जेनरेट की है, लेकिन मैंने एक्सएमएल प्रारूप जेनरेट किया है, लेकिन मुझे सामना करना पड़ रहा है एचटीएमएल को एक बार यह जवाब मिलने के बाद मैं पोस्ट करूंगा ...... – passionTime

8

फिर जवाब के साथ वापस ...... रिपोर्ट पूर्व की तरह HTMLTestRunner का उपयोग करते हुए उत्पन्न कर सकते हैं: HTMLTestRunner में अनुकूलित करने के लिए की जरूरत लंघन के लिए \ report.html:

import random 
import unittest 
import HTMLTestRunner 

class TestSequenceFunctions(unittest.TestCase): 

    def setUp(self): 
     self.seq = range(10) 

    def test_shuffle(self): 
     # make sure the shuffled sequence does not lose any elements 
     random.shuffle(self.seq) 
     self.seq.sort() 
     self.assertEqual(self.seq, range(10)) 

     # should raise an exception for an immutable sequence 
     self.assertRaises(TypeError, random.shuffle, (1,2,3)) 
    @unittest.skip("Test Skipped1") 
    def test_choicep(self): 
     element = random.choice(self.seq) 
     self.assertTrue(element in self.seq) 
    @unittest.skip("Test Skipped2") 
    def test_samplep(self): 
     with self.assertRaises(ValueError): 
      random.sample(self.seq, 20) 
     for element in random.sample(self.seq, 5): 
      self.assertTrue(element in self.seq) 

suite = unittest.TestLoader().loadTestsFromTestCase(TestSequenceFunctions) 
unittest.TextTestRunner(verbosity=2).run(suite) 

outfile = open("C:\Report.html", "w") 
runner = HTMLTestRunner.HTMLTestRunner(
       stream=outfile, 
       title='Test Report', 
       description='This demonstrates the report output by Prasanna.Yelsangikar.' 
       ) 

runner.run(suite) 

सी में HTML स्वरूप में परिणाम प्राप्त करें। पीई फ़ाइल।

+3

इस कोड में, अपने परीक्षण ** 2 बार चलाया जाएगा **। एक बार वे 'unittest.TextTestRunner :: run' और दूसरी बार' HTMLTestRunner :: run' द्वारा शुरू किया जाएगा। आपको लाइन 'unittest.TextTestRunner (verbosity = 2) .run (suite) 'को हटा देना चाहिए। – Jury

3

मैंने nosenose-html-output प्लगइन के साथ उपयोग किया है और एक आकर्षण की तरह काम करता है।

नाक स्थापित करने के लिए सिर्फ टाइप pip install nose

फिर प्लगइन टाइपिंग python setup.py install

अंत में nosetests --with-html-out टाइप करके इकाई परीक्षण चलाने के नाक-एचटीएमएल स्थापित करते हैं, इकाई परीक्षण के परिणामों के साथ एक रिपोर्ट एक में संग्रहीत किया जाएगा फ़ाइल results.html कहा जाता है।

+0

यह वास्तव में मूल प्रश्न को संबोधित नहीं करता है - यह एक पूरी तरह से अलग समाधान का उपयोग कर सवाल का जवाब देता है .. – rh0dium

+0

समाधान एचटीएमएल प्रारूप में एक पायथन unittesting रिपोर्ट उत्पन्न करता है। मुझे नहीं लगता कि यह – melqkiades

+0

@melqkiades से संबंधित नहीं है, क्या हमारे पास उत्पन्न होने वाली रिपोर्ट का नाम बदलने का कोई विकल्प है। यदि मेरे पास चलाने के लिए एकाधिक नोजेट हैं, तो प्रत्येक बार 'result.html' बनाया जाएगा। तो आखिरकार मेरे पास केवल एक 'result.html' होगा। लेकिन, मैं वही संख्या में एचटीएमएल फाइलों को चाहता हूं जो मैं चलाता हूं .. मैं यह कैसे कर सकता हूं? – Karthik