Python测试框架unittest

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)
原文地址:https://www.cnblogs.com/testerlina/p/12942620.html