UnitTest框架

UnitTest框架

介绍

  • 框架
说明:
1.框架英文单词framwork 
2.为了解决一类事情的功能集合

> 需要按照框架的规定书写代码
  • 什么是UnitTest框架?
概念:UnitTest是Python自带的一个单元测试框架,用它来做单元测试。
-----
自带的的框架,不需要另外安装,只要安装了 python ,就可以使用
第三方:想要使用 需要先另外安装(pytest)

------
单元测试框架:主要用来做单元测试,一般单元单元测试是开发做的,对于测试来说,unitest框架的作用是 自动化脚本(用例代码) 执行框架
(使用unitest框架 来 管理 运行 多个测试用例的)
  • 为什么使用UnitTest框架?
1. 能够组织多个用例去执行
2. 提供丰富的断言方法(让程序代码代替人工 自动的 判断预期结果和实际结果是否相符)
3. 能够生成测试报告
  • UnitTest的核心要素(UnitTest的组成)

    1.TestCase(最核心的模块)

    TestCase(测试用例),注意这个测试用例是UnitText框架的组成部分,不是手工和自动化中我们所说的用例(Test case)
    
    主要作用: 每个 TestCase(测试用例)都是一个代码文件,在这个代码文件中 来书写真正的用例代码
    

    2.TestSuite

    TestSuite(测试套件),用来 管理 组装(打包)多个TestSuite(测试用例)的
    

    3.TestRunner

    TestRunner(测试执行,测试运行), 用来执行TestSuite(测试套件)的
    

    4.TestLoader

    TestLoader(测试加载),功能是对TestSuite(测试套件)功能的补充,管理 组装(打包)多个TestSuite(测试用例)的
    

    5.Fixture

    Fixture(测试夹具),书写在TestCase(测试用例)代码中的,是一种代码结构,在每个方法执行前后都会执行的内容
    
    举例:
    登录的测试用例,每个用例中重复的代码就可以写在Fixture代码结构中,只写一遍,但每次用例方法的执行,都会执行Fixture中的代码
    1.打开浏览器
    2.输入网址
    
    
    
    

    在这里插入图片描述

TestCase(测试用例)

1.是一个代码文件,在代码文件中 来书写真正的用例代码
2.代码文件的名字必须按照标识符的规则书写(必须以由字母数字下划线组成,不能以数字开头)(可以将代码的作用在代码开头使用注释说明)
  • 步骤

    1.导包
    2.自定义测试类
    3.在测试中书写测试方法
    4.测试用例
    
  • 书写代码

"""
代码的目的:学习TestCase(测试用例)模块的书写方法
"""
# 导包
import unittest


# 自定义测试类,需要继承 unittest 模块中的 TestCase 类即可
class TestDemo(unittest.TestCase):
    # 书写测试方法,即用例代码。目前没有真正的用例代码,使用print代替
    # 书写要求:测试方法必须以 test_ 开头(本质是以 test 开头)
    def test_methond1(self):
        print('测试方法1')

    def test_methond2(self):
        print('测试方法2')
# 执行测试方法
# 将光标放在 类名的后边 运行
# 将光变放在方法名的后边执行

问题一: 代码文件的命名不规范

1. 代码文件的名字以数字开头
2. 代码文件名字中有空格
3. 代码文件名字中有中文  其他特殊符号
(只能以数字,字母,下划线组成,但是不能以数字开头)

问题二: 代码运行没有结果

右键运行没有unittest for 的提示,出现的问题
解决方案:
方案1.重新新建代码文件,将将写好的代码复制到新的文件内
方案2.删除已有的运行方式
  • 方案2.删除已有的运行方式

    第一步,点击pycharm右上角的小三角:
    在这里插入图片描述

    第二步,打开Edit Configurations,点击减号移除:
    在这里插入图片描述

问题三: 没有找到用例

测试方法中没有找到test_开头的,或者单词写错的

TestSuite和TestRunner

TestSuite(测试套件):打包管理 组装 TestCase(测试用例)文件的
TestRunner(测试执行):执行TestSuite(套件)
  • 步骤

    1. 导包
    2. 实例化(创建对象)套件对象
    3. 使用套件对象添加用例方法
    4. 实例化运行对象
    5. 使用运行对象去执行套件对象
    
  • 代码

TestSuite(测试套件):是用来管理多个 TestCase的,先创建多个TestCase(测试用例)文件

方法一

"""
学习TestSuite和TestRunner 的使用
"""

# 1. 导包(unittest)
import unittest
from py_TestCase1 import TestDemo1
from py_TestCase2 import TestDemo2
# 2. 实例化(创建对象)套件对象
suite = unittest.TestSuite()
# 3. 使用套件对象添加用例方法
# 方式一,套件对象.addTest(测试类名('方法名'))  # 建议测试名和方法类名直接复制,不要手写
suite.addTest(TestDemo1('test_method1'))
suite.addTest(TestDemo1('test_method2'))
suite.addTest(TestDemo2('test_method1'))
suite.addTest(TestDemo2('test_method2'))

# 4. 实例化运行对象
runner = unittest.TextTestRunner()
# 5. 使用运行对象去执行套件对象
# 运行对象.run(套件对象)
runner.run(suite)

方法二

"""
学习TestSuite和TestRunner 的使用
"""

# 1. 导包(unittest)
import unittest
from UnitTest.TestCase1 import TestDemo1
from UnitTest.TestCase2 import TestDemo2
# 2. 实例化(创建对象)套件对象
suite = unittest.TestSuite()
# 3. 使用套件对象添加用例方法
# 方式一,套件对象.addTest(测试类名('方法名'))  # 建议测试名和方法类名直接复制,不要手写
# 方式二,将一个测试类中的所有方法进行添加
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))
# 4. 实例化运行对象
runner = unittest.TextTestRunner()
# 5. 使用运行对象去执行套件对象
# 运行对象.run(套件对象)
runner.run(suite)

查看结果的方法

在这里插入图片描述

练习

1.在tools模块中定义add()的函数,作用:对两个数字进行求和计算
2.书写TestCse代码对add()函数进行测试
用例1:   1, 2, 3
用例2:  10, 20, 30
用例3:   2, 3, 5
  • 用例代码
"""
1.在tools模块中定义add()的函数,作用:对两个数字进行求和计算
2.书写TestCse代码对add()函数进行测试
用例1:   1, 2, 3
用例2:  10, 20, 30
用例3:   2, 3, 5
"""
import unittest

from 模块.tools import add


class Add(unittest.TestCase):
    # 书写测试方法,也就是测试用例代码
    def test_method1(self):
        # 1,2,3 判断实际结果与预期结果是否相符
        if add(1, 2) == 3:
            print('测试通过')
        else:
            print('测试不通过')

    def test_method2(self):
        # 1,2,3 判断实际结果与预期结果是否相符
        if add(10, 20) == 30:
            print('测试通过')
        else:
            print('测试不通过')

    def test_method3(self):
        # 1,2,3 判断实际结果与预期结果是否相符
        if add(2, 3) == 5:
            print('测试通过')
        else:
            print('测试不通过')
  • 套件和执行的代码
import unittest

from UnitTest.tools import Add

suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(Add))
runner = unittest.TextTestRunner()
runner.run(suite)
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值