unittest是自动化测试中重要的单元测试框架,其有以下几个重要的概念:
test case
测试用例
unittest提供一个基类TestCase,用于创建测试用例类,类中的每个以test开头的方法即是一个测试用例,每个测试用例是一个独立的测试单元。
test fixture
测试夹具
实现一些方法用来开展测试前需要准备的工作,或者测试完成后需要进行的清理工作。
包括setup(每个测试用例执行前执行一次)、setupClass(测试用例类执行前执行一次)、tearDown(每个测试用例执行后执行一次)、tearDownClass(测试用例类执行后执行一次)。
test suite
测试套件
一系列的测试用例归集到一起组成测试套件。需要使用测试用例的加载器,可以通过指定测试用例类或者测试用例类所在的路径来加载用例。
测试套件加载测试用例有三种方式:
discover
从文件夹中加载
也可以使用默认加载器进行加载,更简洁:
suite = unittest.defaultTestLoader.discover(r'xxx')
loadTesstsFromModule
从用例模块文件中加载
loadTestsFromTestCase
从测试用例类中加载
test runner
测试运行器
用于执行和输出测试结果,可能使用图形接口、文本接口或者返回特定的值表示运行结果。
unittest官方文档:unittest --- 单元测试框架 — Python 3.10.6 文档