Python测试框架unittest
一、unittest框架
(1)unittest特点
1、python自带的单元测试框架,不需要安装
2、用例执行互不干扰
3、提供不同范围的setUp和tearDown方法
4、提供断言方法
5、可通过discover批量执行所有模块的用例
6、可通过TestSuite灵活组织用例
(2)unittest的几大组成部分
1、TestCase:用例对象,编写测试用例需要继承该类,才拥有TestCase的属性和方法
2、TestSuite:测试集或测试套件,测试用例的集合,用来组织用例,支持嵌套
3、TestLoader:用例加载器,用于想TestSuite中添加用例
4、TextTestRunner:用例执行器,输出文本结果
二、用例编写
1、新建.py文件
2、导入unittest
3、编写Test开头(必须)的类,并继承unittest.TestCase作为测试类,一个模块或者一个接口新建一个类
4、在类中编写test_开头的方法,作为测试用例,一条测试用例新建一个方法
三、用例包裹方法
setUp()/tearDown():每个用例执行前/后执行一次
setUpClass()/tearDownClass():每个测试类加载时/结束时执行一次
四、用例组织及运行
1、新建TestSuite并添加测试用例
#coding=utf-8
import unittest
from test_user_login import TestUserLogin
suite=unittest.TestSuite()
suite.addTest(TestUserLogin('test_user_login_wrong'))
suite.addTest(TestUserLogin('test_user_login_normal'))
# suite.addTests([TestUserLogin('test_user_login_normal'),TestUserLogin('test_user_login_wrong')]) 添加多个用例
unittest.TextTestRunner(verbosity=2).run(suite) #运行顺序为添加到suite中的顺序
2、使用makeSuite
#coding=utf-8
import unittest
from test_user_login import TestUserLogin
suite=unittest.makeSuite(TestUserLogin,'test_user_login_normal') #使用测试类的单条用例制作测试集
#suite=unittest.makeSuite(TestUserLogin) #使用整个测试类制作测试集
unittest.TextTestRunner(verbosity=2).run(suite)
3、使用TestLoader(用例加载器)生成测试集
import unittest
from test_user_login import TestUserLogin
suite=unittest.TestLoader().loadTestsFromTestCase(TestUserLogin)
unittest.TextTestRunner(verbosity=2).run(suite)
4、使用discover(用例发现)遍历所有用例
import unittest
suite=unittest.defaultTestLoader.discover("./")
unittest.TextTestRunner(verbosity=2).run(suite)
5、测试集嵌套
import unittest
from test_user_login import TestUserLogin
suite1=unittest.TestSuite()
suite1.addTest(TestUserLogin('test_user_login_normal'))
suite2=unittest.makeSuite(TestUserLogin)
suite=unittest.TestSuite([suite1,suite2])
unittest.TextTestRunner(verbosity=2).run(suite)