2011-02-28 69 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