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. python读取数据文件:pandas包详解

    本文转载自https://blog.csdn.net/brucewong0516/article/details/79092579 pandas包是一个高效的文件读取工具,适用于txt,excel,等 ...

  2. Shell编程—数据展示

    1.标准文件描述符 Linux用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一个非负整数,可以唯一标识会话中打开的文件.每个进程一次 多可以有九个文件描述符.出于特殊目 ...

  3. 状态压缩动态规划(状压DP)详解

    0 引子 不要999,也不要888,只要288,只要288,状压DP带回家.你买不了上当,买不了欺骗.它可以当搜索,也可以卡常数,还可以装B,方式多样,随心搭配,自由多变,一定符合你的口味! 在计算机 ...

  4. oracle坑。

    char(2)的,后面的有一个空格.删不掉.在plsql里可以正常查.写死的sql在程序也可以正常查. 程序用占位符的形式,不能查出来.只能转成to_number select t.*,t.rowid ...

  5. js动画和css3动画的区别

    JS动画(逐帧动画) 首先,在js动画是逐帧动画,是在时间帧上逐帧绘制帧内容,由于是一帧一帧的话,所以他的可操作性很高,几乎可以完成任何你想要的动画形式.但是由于逐帧动画的帧序列内容不一样,会增加制作 ...

  6. laravel中elastisearch安装和测试运行是否成功(注意是windows下的操作)

    1.去elasticsearch官网下载,如果太慢可以在我上一个随笔看下载地址 2.下载完解压缩,在cmd中找到到elasticsearch的bin目录下执行.\elasticsearch.bat - ...

  7. Unity中的枚举和标志

    译林军 宿学龙|2014-04-10 08:56|9007次浏览|Unity(377)0 枚举和标志 今天的主题是枚举,它是C#语言中的一个很有帮助的工具,可以增强代码的清晰度以及准确性. 枚举一系列 ...

  8. 知识点干货——CSS动画

    CSS动画 (transition.animation) //2D动画 transform:translate(); /*偏移*/ transform:rotate(); /*旋转角度*/ trans ...

  9. springboot x.x.x RELEASE pom 第一行报错解决办法

    springboot x.x.x RELEASE pom 第一行报错解决办法 在pom.xml 文件的properties中加入maven jar插件的版本号 <properties> & ...

  10. 对韩峰著《SQL优化最佳实践》P7 案例的质疑

    事先申明下,我的DB环境是Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production,如果与作者环境不同而 ...