unittest基本概念:unittest单元测试框架是专门用来进行测试的框架
- test fixture: 代表了用例执行前的准备工作和用例执行之后的清理工作。比如在用例执行前创建临时文件和文件夹,又或者启动1个server进程等;
- test case: 测试用例,这个相信大家都不陌生。是测试的最小单位,一般检查一组输入的响应(输出)是否符合预期。unittest模块提供了TestCase类来帮助我们创建测试用例;
- test suite: 经常被翻译成”测试套件”,也有人称为”测试套”,是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起;
- test runner: 用来执行测试用例并输出测试结果的组件。可以是图形界面或命令行界面;
- test fixture的功能可以理解成是初始化和清理测试数据及环境
- test case是测试用例
- test suite是用例集合
- test runner的作用是运行用例并返回结果
# 导入unittest模块
import unittest
# 继承TestCase类,TestCase类是测试用例类
class Test1(unittest.TestCase):
def setUp(self):
print('hello')
def tearDown(self):
print('bye')
def test_001(self):
print('001')
def test_002(self):
print('002')
def test_003(self):
print('003')
class Test2(unittest.TestCase):
def test_001(self):
print('201')
def test_002(self):
print('202')
if __name__ == '__main__':
unittest.main()
# 1.unittest.main()运行时,框架自动寻找TestCase子类,并且运行
# 2.在TestCase类中,只把以test开头的方法当做测试用例,然后执行
# 3.setUp()用于初始化一些参数,在测试用例执行前自动被调用,tearDown()用于清理,在测试用例执行后被调用
- 可以通过继承unittest.TestCase类来定义我们自己的测试用例,1个测试用例类下面可以有多个测试方法(test)或者叫做测试点
- 测试用例中方法名以test开头的方法才是测试方法,比如上面的例子里定义了3个以test开头的方法,分别是test_001,test_002和test_003。非测试方法是不会被test runner执行的
- setUp和tearDown这两个方法,这两个方法在测试方法执行前后会被自动调用,主要用作预处理和清理。这两个方法就是我们说的test fixture
- 通过上面的测试代码我们可以看到,在调用uniitest.main()的时候,框架自动的调用了Test类,因为Test继承自unittest.TesetCase类,所以会被框架识别为测试用例,
- 最后, unittest.main提供了最简单的运行用例的方式。