HTML中的Python单元测试报告

pas*_*ime 9 python unit-testing

如何以HTML格式生成python单元测试报告.

pas*_*ime 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)
Run Code Online (Sandbox Code Playgroud)

在C:\ Report.html中以HTML格式获取结果,以便跳过需要在HTMLTestRunner.py文件中自定义的内容.

  • 在此代码中,您的测试将运行**2次**.有一次它们将由`unittest.TextTestRunner :: run`启动,第二次由`HTMLTestRunner :: run`启动.你应该删除行`unittest.TextTestRunner(verbosity = 2).run(suite)`. (3认同)

Joh*_*web 1

什么样的报告?我以为你的意思是覆盖范围,因为如果你有多个失败的单元测试,那么你就错了。

鼻子

nosetests --with-coverage --cover-html
Run Code Online (Sandbox Code Playgroud)

  • 也许你想先自己仔细看看,发现这个报告显然是由 http://tungwaiyip.info/software/HTMLTestRunner.html 生成的 (3认同)