2011-02-28 68 views

回答

3

什麼樣的報告?我認爲你的意思是覆蓋率,因爲如果你有多個失敗的單元測試你做錯了。

看看Nose

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

請在鼻子裏,如何在HTML中生成HTML Unittest報告.. – passionTime 2011-02-28 05:04:38

+0

只有通過,失敗,跳過和HTML格式的錯誤報告,而不是代碼覆蓋率報告 – passionTime 2011-02-28 05:18:47

+0

我想要這種格式,請轉到此鏈接http: //tungwaiyip.info/software/sample_test_report.html – passionTime 2011-02-28 05:25:41

3

我不知道HTML,但Nose可以生成XML的xUnit報告,通過--with-的xUnit選項。

+0

某些級別我得到了解決方案python單元測試Nose Html報告生成。直到今天結束,我想我會得到解決方案。感謝您的支持...... – passionTime 2011-02-28 11:10:07

+2

@ prasanna.yelsangika:「謝謝」[最好表示爲答案左側的綠色勾號,幫助您解決問題](http://stackoverflow.com/faq# howtoask)。 – Johnsyweb 2011-02-28 11:33:41

+0

我的問題的答案是轉到鏈接http://testoob.sourceforge.net/features.html,在這個鏈接我生成使用testoob工具的XML/HTML格式的python單元測試報告,但我生成的XML格式,但我面臨HTML一旦我得到這個答案我會發布...... – passionTime 2011-03-03 06:22:39

8

再次回到與答案......報告可以生成使用HTMLTestRunner像前:

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格式在C:\ Report.html跳過需要在HTMLTestRunner定製。 py文件。

+3

在這段代碼中,你的測試將運行** 2倍**。有一次,它們將由'unittest.TextTestRunner :: run'啓動,第二次由'HTMLTestRunner :: run'啓動。你應該刪除'unittest.TextTestRunner(verbosity = 2).run(suite)'這一行。 – Jury 2015-08-13 07:01:11

3

我已將nosenose-html-output插件一起使用,並且像魅力一樣工作。

安裝鼻子只需鍵入pip install nose

然後安裝鼻HTML插件打字python setup.py install

最後通過鍵入nosetests --with-html-out運行單元測試,與單元測試結果的報告將保存在文件名爲results.html

+0

這並沒有真正解決核心問題 - 它使用完全不同的解決方案來回答問題。 – rh0dium 2014-07-30 00:33:21

+0

該解決方案以HTML格式生成python unittesting報告。我不明白它是不是相關問題 – melqkiades 2014-07-30 09:05:51

+0

@melqkiades我們是否有任何選項可以更改生成的報告的名稱。如果我有多個nosetests運行,那麼每次都會創建'result.html'。所以最後我只會有一個'result.html'。但是,我需要與我運行的鼻子測試相同數量的html文件。 我該怎麼做? – Karthik 2016-04-26 04:18:44