unittset介绍与使用

# 学习目标
1.掌握TestCase的使用
2.掌握通过TextTestRunner执行TestCase中的测试用例
3.掌握使用TestLoader加载TestCase中的测试用例
4.掌握常用断言assertInh和assertEqual的使用语法
5.了解参数化技术
6.掌握生成HTML格式的测试报告

1.1Unittest介绍

(1).Unittest组成部分

Unittest是python的自动化测试框架,Unittest框架主要包括以下部分:

  • TestCase(测试用例)
  • TestSuite(测试套件,把多个TestCase集成一个测试TestSuite)
  • TestRunner(执行测试用例)
  • TestLoader(自动从代码中加载多个测试用例TestCase)
  • Fixture(UnitTestTest特性)

(2).为什么使用Unittest框架

  • 能够组织多个用例去执行
  • 提供丰富的断言方法
  • 能够生成测试报告(由于生成的测试报告简陋,我们选择其他插件实现)

1.2TestCase

测试用例类,我们做单元测试时编写的测试用例就是继承TestCase类来实现具体的测试用例

每一个继承TestCase类的子类里面实现的具体的方法(以test开头的方法)都是一条用例

import unittest
class UserCase(unittest.TestCase):

    def testAddUser(self):
        print("add a user")

    def testDelUser(self):
        print("delete a user")

if __name__ == '__main__':
    unittest.main()

分析unittest之TestSuite类说明

import unittest
class UserCase(unittest.TestCase):

    def testAddUser(self):
        print("add a user")

    def testDelUser(self):
        print("delete a user")

if __name__ == '__main__':
    result = unittest.TextTestResult(sys.stdout,'test result',1) #初始化TextTestResult类实例
    testcase = UserCase('testAddUser')  #初始化UserCase类实例
    testcase(result) #跟testcase.run(result)的结果是一样的,我们只需要传入一个result对象即可

运行结果如下:

E:\PythonWorkSpace>python test.py
add a user
.

E:\PythonWorkSpace>

1.4makeSuite

上面的Suite。addTest()方法,一次只能加载一条测试用例,如果自定义的类中测试用例非常多,且要全部加载,此种方法会非常的麻烦,使用makemSuite方法可以一次性将一个类中的测试全部用例全部加载进来。

# makeSuite使用示例
import unittest
import demo1

# 实例化TestSuite对象
suite = unittest.TestSuite()
suite.addTest(uniteest.makeSuite(demo1.MYTest))   # 加载demo1中的所有用例

1.5 TestRunner

TsetRunner是用来执行suite对象中加载的测试用例的方法

# makeStuite使用示例


import Unittest
import demo1


# 实例化TextTestRunner对象
runner = unittes.TextTestRunner()
#执行suite对象中的用例
runner.run(suite)

1.6TestLoader

TsetLoader 可以更方便的加载用例,使用说明如下:

  • TestLoader 需要先实例化一个对象,该对象返回用户一个suite
  • TestLoader对象可调用discover方法加载指定文件中的所有用例
  • discover方法传递两个参数,第一个参数为路径,第二个参数为路径下的文件名,文件名可以使用通配符,同时加载指定目录下的多个文件中的全部用例
import unittest

#实例化TestLoader对象,调用discover方法加载demo1.py中的全部用例
suite = unittest.TestLoader().discover('./','demo1.py')
#实例化TextTestRunner对象
runner = unitteat.TextTestRunner()
# TextTestRunner对象执行suite中所用例
runner.run(suite)

1.7 TestSuite 与TestLoader区别

TestSuite 需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法)
TestLoader 搜索指定目录下指定开头.py文件,并添加测试类对的所有的测试方法,不能指定添加测试方法

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值