一、快速入门
1、unittest介绍
unittest 是 Python 内置的单元测试框架,不需要安装可以直接调用。其中几个核心概念如下:
Test Fixture:
- 测试脚手架,用来完成测试前置处理,后置处理。如测试前的环境准备,测试完成后环境销毁。
- 测试函数级别:setUp,tearDown
- 测试类级别:setUpClass,tearDownClass
Test Case:
- 测试用例, 一个测试用例是一个独立的测试单元,新建测试用例需要继承 unittest.TestCase。
Test Suite:
- 测试套件,用来收集测试用例或者测试套件。suite = unittest.TestSuite()
Test Loader:
- 测试加载器,用来将测试用例加载到测试套件中。unittest.TestLoader()
Test Runner:
- 测试运行器,用来运行测试并输出测试结果。如将测试结果输出文本格式:unittest.TextTestRunner()
2、编写测试用例
新建测试用例需要继承 unittest.TestCase,测试用例以test*开头,一个单元编写一个测试用例。
- 编写测试用例 TestCase1.py 如下:
import unittest
class TestCase1(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print('setUpClass...')
def setUp(self) -> None:
print('setUp...')
def test1(self):
print('test1...')
def test2(self):
print('test2...')
def tearDown(self) -> None:
print('tearDown...')
@classmethod
def tearDownClass(cls) -> None:
print('tearDownClass...')
class TestCase2(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print('setUpClass...')
def setUp(self) -> None:
print('setUp...')
def test1(self):
print('test3...')
def test2(self):
print('test4...')
def tearDown(self) -> None:
print('tearDown...')
@classmethod
def tearDownClass(cls) -> None:
print('tearDownClass...')