python3的eval方法

eval() 函数用来执行一个字符串表达式,并返回表达式的值

# 例如
a = [1,2,3,4]
b = "a"
print(eval(b))
# 执行结果
[1, 2, 3, 4]

利用eval方法实现unittest单元测试

实现只执行test开头的case

先建一个demo
class Demo:
def demo_01(self):
print("这是demo_01") def test_demo(self):
print("这是test_demo") def demo_03(self):
print("这是demo_03") class manage:
dm = Demo()
func_list=dir(dm)
for func in func_list:
if func.startswith("test"):
eval("dm.%s()"%func)
# 运行结果
这是test_demo

实现 seUpClass、tearDownClass功能

class Demo:
def setUpClass(self):
print("这是setUpClass") def tearDownClass(self):
print("这是tearDownClass") def demo_01(self):
print("这是demo_01") def test_demo(self):
print("这是test_demo") def demo_03(self):
print("这是demo_03") class manage:
dm = Demo()
func_list = dir(dm)
teardownclass =None
for data_prepare in func_list:
if data_prepare == "setUpClass":
eval("dm.%s()" % data_prepare)
if data_prepare == "tearDownClass":
teardownclass = data_prepare
for func in func_list:
if func.startswith("test"):
eval("dm.%s()" % func)
if teardownclass !=None:
eval("dm.%s()"%teardownclass)
# 执行结果
这是setUpClass
这是test_demo
这是tearDownClass

实现setUp、tearDown功能

class Demo:
def setUpClass(self):
print("这是setUpClass") def tearDownClass(self):
print("这是tearDownClass") def setUp(self):
print("这是setUp") def tearDown(self):
print("这是tearDown") def demo_01(self):
print("这是demo_01") def test_demo(self):
print("这是test_demo") def demo_03(self):
print("这是demo_03") class manage:
dm = Demo()
func_list = dir(dm)
teardownclass = None
setup = None
teardown = None
for data_prepare in func_list:
if data_prepare == "setUpClass":
eval("dm.%s()" % data_prepare)
if data_prepare == "tearDownClass":
teardownclass = data_prepare
if data_prepare == "setUp":
setup = data_prepare
if data_prepare == "tearDown":
teardown = data_prepare
for func in func_list:
if func.startswith("test"):
if setup != None:
eval("dm.%s()" % setup)
eval("dm.%s()" % func)
if teardown != None:
eval("dm.%s()" % teardown)
if teardownclass !=None:
eval("dm.%s()"%teardownclass)
# 执行结果
这是setUpClass
这是setUp
这是test_demo
这是tearDown
这是tearDownClass

以上就是实现unittest单元测试的过程,以上内容均来自互联网,转载请注明

利用python简单实现unittest的更多相关文章

  1. 宅男福利--利用Python简单爬图

    Ver beta..代码粗陋. 使用说明以Windows为例, Python版本为2.7.6 确认你电脑已经安装了Python, Windows默认安装路径为C:\Python27.如果没有安装,先下 ...

  2. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  3. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  4. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  5. 利用Python进行简单的图像识别(验证码)

    这是一个最简单的图像识别,将图片加载后直接利用Python的一个识别引擎进行识别 将图片中的数字通过 pytesseract.image_to_string(image)识别后将结果存入到本地的txt ...

  6. python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序

    python简单的监控脚本-利用socket.psutil阻止远程主机运行特定程序 psutil是一个跨平台的库(http://code.google.com/p/psutil/),能够轻松的实现获取 ...

  7. 利用python,简单的词语纠错

    利用python,编写一个简单的词语纠正修改器. 原文:http://norvig.com/spell-correct.html #!/usr/bin/env python # coding=utf- ...

  8. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  9. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

随机推荐

  1. Spring Cloud Admin健康检查 邮件、钉钉群通知

    源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadmin Admin 简介 官方文档:What is Spring ...

  2. 你真的了解 get 和 post 的区别么

    get 和 post 是两种最常用的 HTTP 请求方法,要说它们两个的区别,相必接触过 WEB 开发的人都能够说出一二. 如果我问你这个问题,你的内心充满了自信和喜悦.你可能已经写过无数个 GET ...

  3. Exploring Adversarial Attack in Spiking Neural Networks with Spike-Compatible Gradient

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:2001.01587v1 [cs.NE] 1 Jan 2020 Abstract 脉冲神经网络(SNN)被广泛应用于神经形态设 ...

  4. 解决:While reading from '/Users/***/.pip/pip.conf' [line 4]: option 'extra-index-url' in section 'global' already exists

    解决:While reading from '/Users/***/.pip/pip.conf' [line 4]: option 'extra-index-url' in section 'glob ...

  5. jsoup中selector的用法及作用

    1.jsoup——selector定义: selector选择器是用于对jsoup解析后document文档的数据筛选操作 2.jsoup——selector操作步骤: 1)先导jsoup架包 2)基 ...

  6. 力扣Leetcode 198. 打家劫舍

    打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给定 ...

  7. npm install @wepy/cli -g 出错

    npm install @wepy/cli -g 出错:npm ERR! Unexpected end of JSON input while parsing near '...1.0.0" ...

  8. Labview学习之路(十一)日常编程技巧

    此文章用于记录自己在学习Labview过程中所用到的编程技巧,会一直更新下去. (一)移动控件 直接鼠标拖动. 按住shift键,鼠标移动,可以水平和竖直移动(取决于鼠标最开始的移动方向). 使用键盘 ...

  9. 【pytest】teardown里的yield和addfinalizer

    在之前介绍pytest中的fixture用法的文章中https://zhuanlan.zhihu.com/p/87775743,提到了teardown的实现. 最近在翻pytest官方文档的时候,又发 ...

  10. TDengine能比Hadoop快10倍?

    之前对国产的时序大数据存储引擎 TDengine 感兴趣,因为号称比Hadoop快十倍,一直很好奇怎么实现的,所以最近抽空看了下白皮书和设计文档. 如果用一句话总结,就是 TDengine 是为特定的 ...