测开之路五十六:实现类似unittest的断言

import inspect

class Case(object):    """ 实现断言 """

    def __init__(self):        self.result = {}  # 存断言的结果

    def _assert(self, expression, message):        """ 真正执行断言的函数 """        """        [2][1]二维数组,以a调b时b调c为例        第一个下标        如果是0,则代表当前函数(c),        如果是1,代表谁调的函数(b)        如果是2,代表谁调的函数(a)        ···        第二个下标        如果是1,代表当前文件        如果是2,代表文件执行到多少行了        如果是3,代表当前执行的函数名        如果是4,代表当前执行的这块代码        ···        """        file = inspect.stack()[2][1]        line = inspect.stack()[2][2]        func = inspect.stack()[2][3]        code = inspect.stack()[2][4]        self.result.setdefault(func, {            ‘file‘: file,            ‘line‘: line,            ‘func‘: func,            ‘code‘: code,            ‘result‘: {                ‘status‘: expression,                ‘message‘: message            }        })        if not expression:            print(message)  # 断言失败打印失败信息            # raise AssertionError(message) # 断言失败抛异常

    def assertEqual(self, first, second, message=‘‘):        self._assert(first == second, message)

    def assertNotEqual(self, first, second, message=‘‘):        self._assert(first != second, message)

    def assertIn(self, first, second, message=‘‘):        self._assert(first in second, message)

    def assertNotIn(self, first, second, message=‘‘):        self._assert(first not in second, message)

    def assertIs(self, first, second, message=‘‘):        self._assert(first is second, message)

    def assertNotIs(self, first, second, message=‘‘):        self._assert(first is not second, message)

    def assertNone(self, first, message=‘‘):        self._assert(first is None, message)

    def assertNotNone(self, first, message=‘‘):        self._assert(first is not None, message)

    def assertTrue(self, first, message=‘‘):        self._assert(bool(first) == True, message)

    def assertFalse(self, first, message=‘‘):        self._assert(bool(first) == False, message)

原文地址:https://www.cnblogs.com/zhongyehai/p/11087289.html

时间: 2024-11-09 21:29:03

测开之路五十六:实现类似unittest的断言的相关文章

测开之路七十六:性能测试蓝图之html

<!-- 继承base模板 -->{% extends 'base.html' %} {% block script %} <!-- 从cdn引入ace edter的js --> <script src="https://cdn.bootcss.com/ace/1.4.5/ace.js"></script> <script src="https://cdn.bootcss.com/ace/1.4.5/mode-python

测开之路二十六:Flask基础之最小web程序

Flask中文文档:http://docs.jinkan.org/docs/flask/ 安装Flask库 选端口号的一种方法(避免和别人选的端口冲突,小于1024的时候重新选) 最小web程序 用127.0.0.1或者localhost访问 返回html标签 原文地址:https://www.cnblogs.com/zhongyehai/p/10816624.html

测开之路三十六:常用的css选择器

在static下新建一个css,并写入内容 /*标签选择器,label标签的颜色为红色*/label {color: red;} /*.代表类选择器,绿色*/.test {color: green;} /*#代表id选择器,黄色*/#test {color: yellow;} /*div标签下的魔偶写标签下的lable标签(相对关系),内容的颜色为蓝色*/div label {color: blue;} /*div标签下的直接的lable标签(父子关系),,灰色*/div > label {co

测开之路五十二:蓝图的用法

目录结构 html <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>蓝图渲染</title></head><body><h1>这里是蓝图渲染</h1></body></html> 子app(创建不同的蓝图,如接口测试.ui测试.性能测试)

测开之路七十六:linux变量和环境变量

变量 赋值 variable=0,访问 $var或${var} 参数 $n 用``引住的会先执行(~键) 位置参数 环境变量/etc/profile:全局的环境变量 . bash_profile:用户的环境变量,在哪个用户的home下,就对哪个用户生效~/ .bashrc:用户的环境变量,在哪个用户的home下,就对哪个用户生效export:导出变量,即用户在外面使用source:修改环境变量后让变量文件生效 添加a到环境变量 也可以export其他的变量 在脚本中使用环境变量 管道 | 管道操

测开之路二十五:彩票游戏

玩法 import random money = random.randint(0, 999) def generate_code(money): return list(set([ money[0] + money[1] + money[2], money[0]+money[2]+money[1], money[1] + money[0] + money[2], money[1] + money[2] + money[0], money[2] + money[0] + money[1], mo

测开之路三十五:css引入

CSS是一种定义样式结构,如字体.颜色.位置等的语言,被用于描述网页上的信息格式化和现实的方式.CSS样式可以直接存储于HTML网页或者单独的样式单文件.无论哪一种方式,样式单包含将样式应用到指定类型的元素的规则.外部使用时,样式单规则被放置在一个带有文件扩展名css的外部样式单文档中. css引入方式: 1.div标签 2.style标签,在head里面声明给某一个标签加样式,如果body里面的改标签没有特别声明样式,将全部展示为同一声明的样式,类似于继承与重写的关系 3.link标签:外链导

测开之路四十八:Django之重定向与cookie

基础配置与上一篇一致 404错误 定义一个error页面 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>错误页</title></head><body> <h1>哎呀,出错啦!</h1></body></html> 追加一个404的视图

测开之路七十八:性能测试蓝图之视图层

from flask import requestfrom flask import jsonifyfrom flask import Blueprintfrom flask import render_templatefrom performance.logic import Logic performance = Blueprint('performance', __name__, static_folder='static', template_folder='templates', ur