Python单元测试HTML报告

12 投票
6 回答
43953 浏览
提问于 2025-04-16 12:39

如何生成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文件中进行一些自定义设置。

撰写回答