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面试技术点总结(建议收藏)

    前言 Spring作为现在最流行Java开发技术,其内部源码设计非常优秀. Spring这个词对于Java开发者想必不会陌生,可能你每天都在使用Spring,享受着Spring生态提供的服务.现在很多 ...

  2. linux,运维,部署 相关

    基础 linux基础命令 linux基础 部署 docker

  3. 归并排序-Python实现

    归并排序(MergeSort) 归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为 O(n\log n)(大O符号).1945年由约翰·冯·诺 ...

  4. cinder api启动过程源码分析

    1.启动cinder-api服务 当你通过cinder-api命令(如:/usr/bin/cinder-api --config-file /etc/cinder/cinder.conf)启动api服 ...

  5. Java中枚举的常见用法

    在JDK1.5以后引入了一种新的类型,就是枚举(enum).enum是用来声明枚举类型数据,它可以像数组一样存储许多的元素,但是不同于数组的是,它除了数字不能存储以外, 其他类型的如字母.特殊符号.汉 ...

  6. 按钮改变和控制div的形状的html,JavaScript代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. openssh一键升级脚本(测试成功)

    1 ssh版本检查 本文档针对于ssh版本低于7.0的系统,升级为openssh7.5 p1. ssh –V [root@kuajing-db3 ~]# ssh -V OpenSSH_5.3p1, O ...

  8. ssm-springboot实现修排名再顺序排的主要代码

    排序改为2,结果如下: package com.zhetang.controller; import com.core.vo.JsonResult; import com.utils.PageResu ...

  9. @RequestBody和@RequestParam

    @RequestBody的使用 https://blog.csdn.net/justry_deng/article/details/80972817 (@RequestBody Map map)接收多 ...

  10. 终于有架构师用401页PDF+194张图表把设计模式讲明白了

    十几年来,IT 界也发生了翻天覆地的变化,各种开源框架层出不穷,机器学习大兴其道.但是,在面向对象编程中,设计模式的重要性却不曾改变.与以前一样,在大规模的企业系统开发中,Java和C#仍处于主导地位 ...