首页 > 其他 > 详细

unittest单元测试框架中的参数化及每个用例的注释

时间:2018-06-26 10:13:34      阅读:284      评论:0      收藏:0      [点我收藏+]

相信大家和我有相同的经历,在写自动化用例脚本的时候,用例的操作是一样的,但是就是参数不同,比如说要测一个付款的接口,付款有很多种渠道,另外只有部分参数不一样,如果我们一个渠道一个渠道的写,在unittest里面就要写很多个用例脚本,而且大部分内容都是一样的,这样脚本就显得比较冗余了。

我们可以把不同的参数写在一个列表中,然后循环列表获取参数执行用例,python有第三方模块parameterized来实现循环列表获取参数执行用例的功能。

另外,之前写用例脚本,每个用例下面增加三引号注释,可以增加脚本可读性,而且在报告中也可以显示注释,但是,现在接口用例只写一个,里面的参数都参数化了,如何显示不同参数情况下的用例的注释呢?parameterized下的expand方法已经给我们做好了这些,唯一的缺点是,报告中只能显示英文注释,不能显示中文注释。

 

技术分享图片

 

完整用例代码:

import os, sys

path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, path)
import unittest
from core import HTMLTestRunner
from parameterized import parameterized
from core import logger
import inspect
from core.tools import p


def cacl(a, b):
    return a + b


class MyCacl2(unittest.TestCase):
    def setUp(self):
        pass
        # print(‘测试用例开始执行...‘)

    def tearDown(self):
        pass
        # print(‘测试用例执行完成...‘)

    @parameterized.expand(
        [
            ("fushujiaxiaoshu",-1, 1.5, 0.5),  # 负数加小数
            ("xiaoshujiaxiaoshu",1.1, 2.2, 3.3),  # 小数相加

        ]
    )
    def test_cacl(self,a, b, c, d):  # 此处a不能省略
        try:
            res = cacl(b, c)
        except TypeError as e:
            res = ‘类型错误‘
        self.assertEqual(res, d)

  

报告,可以看到用例后显示了英文注释

技术分享图片

 

unittest单元测试框架中的参数化及每个用例的注释

原文:https://www.cnblogs.com/UncleYong/p/9227454.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!