Python单元测试HTML报告
如何生成Python单元测试的HTML格式报告。
6 个回答
3
我使用了 nose 这个工具,并配合 nose-html-output 插件,效果非常好。
要安装nose,只需输入 pip install nose
。
接着,安装nose-html插件,输入 python setup.py install
。
最后,通过输入 nosetests --with-html-out
来运行单元测试,测试结果会保存在一个叫 results.html
的文件里。
3
我对HTML不太了解,不过Nose这个工具可以通过--with-xunit
这个选项生成XUnit格式的XML报告。
9
再次回来给大家解答……可以使用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)
你可以在C:\Report.html这个路径下得到以HTML格式生成的结果。如果想要跳过某些内容,需要在HTMLTestRunner.py文件中进行一些自定义设置。