unittest
1.什么是unittest?
unittest是Python自带的一个单元测试框架, 它可以做单元测试, 也能用于编写和运行重复的测试工作。它给自动化测试用例开发和执行提供了丰富的断言方法, 判断测试用例是否通过, 并最终生成测试结果.
2.unittest组成
2.1 TestCase
TestCase即测试用例,也就是真正执行的代码,要定义一个测试类必须满足以下条件:
它必须继承自unittest.TestCase
测试方法必须以test开头
import unittestclass Test_class(unittest.TestCase):def test_demo1(self):print('demo1测试代码')def test_demo2(self):print('demo2测试代码')
2.2 TestSuite
suite的意思是套件,如果把TestCase比作是一个个物品的话,那么TestSuite就是一个集装箱,它可以存放很多case并一次性执行。
suite = unittest.TestSuite()
suite.addTest(Test_class('test_demo1'))
suite.addTest(Test_class('test_demo2'))
2.3 TestLoader
可以看作是TestSuite的补充,我们从TestSuite的添加用例代码可以看出TestSuite每添加一个用例都需要add,如果用例很多的话很不方便,TestLoader就很好的解决了这个问题,它可以一次添加多个用例,不需要一个一个添加。
loader = unittest.TestLoader()
suite = loader.discover('./case', pattern='test_*.py') #返回值是TestSuite类型
discover的第一个参数表示要遍历文件的地址,可以是相对地址和绝对地址,pattern表示要遍历文件的文件名, 这里表示所有以test_开头的python文件,则loader.discover('./case', pattern='test_*.py')表示遍历与当前python文件同一目录下的case文件夹下所有以test_开头的python文件,将它装载到suite中。
2.4 TestRunner
测试用例运行器,真正执行用例的容器。
runner = unittest.TextTestRunner()
runner.run(suite)
执行runner.run(suite)之后,程序开始执行测试用例并输出结果: