python unitest 测试运行器(Test Runner)

发布时间 2023-06-17 15:40:12作者: 云淡#风清

测试运行器(Test Runner)是unittest框架提供的执行测试用例的组件,用于自动运行测试用例并生成测试结果报告。它负责加载测试用例、执行测试用例,并提供测试结果的输出。

unittest框架提供了多种测试运行器,包括TextTestRunner、HTMLTestRunner、XMLTestRunner等。这些运行器可以根据不同的需求选择使用。

下面以TextTestRunner和HTMLTestRunner为例,说明如何使用这两种测试运行器:

  1. TextTestRunner: TextTestRunner是unittest框架默认的测试运行器,它将测试结果以文本形式输出到控制台。

    import unittest
    
    class MyTestCase(unittest.TestCase):
        def test_addition(self):
            self.assertEqual(2 + 2, 4)
    
    if __name__ == '__main__':
        unittest.main()

    在上述示例中,使用unittest.main()来执行测试用例。默认情况下,使用TextTestRunner作为测试运行器,并在控制台输出测试结果。

  2. HTMLTestRunner: HTMLTestRunner是一个第三方库,它可以生成漂亮的HTML格式的测试结果报告。
    import unittest
    from HTMLTestRunner import HTMLTestRunner
    
    class MyTestCase(unittest.TestCase):
        def test_addition(self):
            self.assertEqual(2 + 2, 4)
    
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(unittest.makeSuite(MyTestCase))
    
        with open('test_report.html', 'w') as f:
            runner = HTMLTestRunner(stream=f, title='Test Report', description='Test Results')
            runner.run(suite)

    在上述示例中,首先创建一个TestSuite对象,将测试用例添加到TestSuite中。然后创建HTMLTestRunner对象,指定输出的HTML文件路径、报告标题和描述。最后使用runner.run()方法执行测试用例并生成HTML格式的测试结果报告。