【python实操】python小程序之TestSuite和TestRunner
引言
python小程序之TestSuite和TestRunner
文章目录
- 引言
- 一、TestSuite&TestRunner
- 1.1 概念
- 1.1.1 TestSuite
- 1.1.2 TestRunner
- 1.2 题目
- 1.3 代码
- 1.3.1 case1代码
- 1.3.2 case2代码
- 1.3.3 TestSuite和TestRunner代码
- 1.4 代码解释
- 二、思考
- 2.1 TestSuite&TestRunner
一、TestSuite&TestRunner
1.1 概念
TestSuite
和 TestRunner
是 unittest
框架中的两个重要组件,它们允许更灵活地组织和运行测试
1.1.1 TestSuite
TestSuite
用于将多个测试用例组合在一起,形成一个测试套件。这样可以一次性运行一组相关的测试
1.1.2 TestRunner
TestRunner
负责执行测试套件,并生成测试报告。默认情况下,unittest
使用 TextTestRunner
来在控制台上显示结果
这种方式能够更细粒度地控制哪些测试被运行,以及如何运行这些测试。可以根据需要创建多个测试套件,并选择不同的测试运行器来获取不同的输出格式。例如,可以使用其他类型的 TestRunner
(如 HTMLTestRunner
)来生成 HTML 格式的测试报告
1.2 题目
如何
1.3 代码
1.3.1 case1代码
import unittestclass TestCase1(unittest.TestCase):def test_method1(self):print('这是case1的method1')def test_method2(self):print('这是case1的method2')
1.3.2 case2代码
import unittestclass TestCase2(unittest.TestCase):def test_method1(self):print('这是case2的method1')def test_method2(self):print('这是case2的method2')
1.3.3 TestSuite和TestRunner代码
import unittest
from testcase1 import TestCase1
from testcase2 import TestCase2suite = unittest.TestSuite()suite.addTest(TestCase1('test_method1'))
suite.addTest(TestCase1('test_method2'))
suite.addTest(TestCase2('test_method1'))
suite.addTest(TestCase2('test_method2'))runner = unittest.TextTestRunner()if __name__ == '__main__':result = runner.run(suite)
输出结果:
1.4 代码解释
代码展示了如何使用 unittest
框架中的 TestSuite
和 TextTestRunner
来组织和运行多个测试用例
-
导入模块:
import unittest from testcase1 import TestCase1 from testcase2 import TestCase2
unittest
:这是 python 的单元测试框架,提供了编写和运行测试所需的所有功能testcase1
和testcase2
:假设这是两个不同的文件(模块),每个文件中定义了一个或多个测试类。这里从这两个文件中分别导入了TestCase1
和TestCase2
类
-
创建 TestSuite 对象:
suite = unittest.TestSuite()
- 创建一个
TestSuite
对象suite
,用于存储一组测试用例
- 创建一个
-
添加测试方法到 TestSuite:
suite.addTest(TestCase1('test_method1')) suite.addTest(TestCase1('test_method2')) suite.addTest(TestCase2('test_method1')) suite.addTest(TestCase2('test_method2'))
- 使用
addTest
方法将具体的测试方法添加到TestSuite
中。这里添加了四个测试方法:TestCase1
类中的test_method1
TestCase1
类中的test_method2
TestCase2
类中的test_method1
TestCase2
类中的test_method2
- 使用
-
创建 TextTestRunner 对象:
runner = unittest.TextTestRunner()
- 创建一个
TextTestRunner
对象runner
,它负责执行TestSuite
中的测试,并在控制台上输出结果
- 创建一个
-
运行测试套件:
if __name__ == '__main__':result = runner.run(suite)
if __name__ == '__main__':
确保当脚本作为主程序运行时才会执行下面的代码块runner.run(suite)
调用run
方法来执行TestSuite
中的测试,并返回一个TestResult
对象,该对象包含了测试的结果信息
二、思考
2.1 TestSuite&TestRunner
如果需要更详细的输出,可以在创建 TextTestRunner
时传递 verbosity=2
参数,例如:
runner = unittest.TextTestRunner(verbosity=2)