视频 | Python测试开发之调试print代码实例

视频内容
# -*- coding: utf-8 -*-

__author__ = "苦叶子"

"""

公众号: 开源优测

Email: lymking@foxmail.com

"""

import sys


# 定义print输出级别, 用于控制print输出
# 优先级 DEBUG > INFO > WARNING > ERROR
class Print:
    DEBUG = 0
    INFO = 1
    WARNING = 2
    ERROR = 3
    PRINT_TIP = {DEBUG: "Debug", INFO: "Info", WARNING: "Warn", ERROR: "Error"}


# 全局print控制标志
PRINT_LEVEL = Print.ERROR


# 自定义print输出
# msg - 输出内容
# level - 输出级别控制
def print_console(msg, level=Print.INFO):
    filename = sys._getframe().f_code.co_filename
    func = sys._getframe().f_code.co_name
    line = sys._getframe().f_lineno
    if level >= PRINT_LEVEL:
        print("In File: %s, Function: %s @line: %s  %s: %s" % (filename, func, line, Print.PRINT_TIP[level], msg))


# 测试print_console
def test_print_console():
    print_console("这是debug输出...", Print.DEBUG)

    print_console("这是info输出....", Print.INFO)

    print_console("这是warning输出...", Print.WARNING)

    print_console("这是error输出", Print.ERROR)

    print("---" * 10)


if __name__ == "__main__":
    print("print输出示例")

    # 设置输出为DEBUG级别
    PRINT_LEVEL = Print.DEBUG
    test_print_console()

    # 设置输出为INFO级别
    PRINT_LEVEL = Print.INFO
    test_print_console()

    # 设置输出为Warning级别
    PRINT_LEVEL = Print.WARNING
    test_print_console()

    # 设置输出为ERROR级别
    PRINT_LEVEL = Print.ERROR
    test_print_console()

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xiaoheike

Neo4j批量插入(Batch Insertion)

代码可以在github上看到:https://github.com/neo4j/neo4j/blob/2.3.3/community/embedded-exam...

34420
来自专栏JadePeng的技术博客

ASP.NET MVC 开源项目Kigg解读(1)

Kigg是一个很好的ASP.NET MVC范例项目,本着研究的目的,对Kigg进行解读。 ASP.NET MVC Linq To SQL MS Patter...

32660
来自专栏跟着阿笨一起玩NET

WinForm TreeView的一点用法

TreeView一般都包含父节点和子节点,常规情况下有以下几种情况: 1.选中父节点之后,该父节点下面的所有子节点都被选中,取消选择父节点,则该父节点下面所有的...

37910
来自专栏大内老A

WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel

在上一篇文章中,我们通过一个直接借助BasicHttpBinding对象实现Client和Server端进行通信的例子,对WCF channel layer进行...

23750
来自专栏乐沙弥的世界

[INS-30507] Empty ASM disk group

    最近的Oracle 11g RAC安装碰到了INS-30507错误,也就是在grid安装到创建ASM磁盘组的时候找不到任何候选磁盘,google了N多安...

20830
来自专栏挖坑填坑

使用typescript开发angular模块(编写模块)

之前在使用typescript开发angular模块(发布npm包)一文中基本掌握了怎么发布一个typescript写的npm包。但是离目标还有段距离。

12130
来自专栏跟着阿笨一起玩NET

使用windows服务和MSMQ和进行日志管理(解决高并发问题)

然后就可以写我们的代码了,我们的服务需要实时监视MSMQ的队列中有没有记录,如果有,就向数据库中插入

49110
来自专栏AhDung

C#程序防多开又一法

在Main()方法开始时遍历所有进程,获取每个进程的程序集GUID和PID,若发现有跟自己GUID相同且PID不同的进程,就勒令自身退出。

26630
来自专栏菩提树下的杨过

webservice今日遇到的二个问题:DataTable + Namespace

自从ms推出wcf以后,几乎没在web项目中用过webservice了,基本上都是以wcf host在iis中替代的。今天利用公司以前的web框架做一个新项目,...

23980
来自专栏菩提树下的杨过

mongodb 速成笔记

以下环境为mac osx + jdk 1.8 + mongodb v3.2.3 一、安装 brew安装方式是mac下最简单的方式 brew update bre...

22850

扫码关注云+社区

领取腾讯云代金券