python 例子: 实现动态加载类,并自动执行它定义的函数
来源:互联网 发布:海岛奇司令部升级数据 编辑:程序博客网 时间:2024/06/13 23:02
=========
MiniJenkinsWorker2.py 内容如下
===========
'''
@author: hongbin'''
import xmlrunner
import importlib
import os
import types
def main():
'''
Function: give one module name, this code will find those class prefixed with "myUT_"
and run their functions whose name is prefixed with 'test_' automatically
Here, in this module, you can add as many class as possible as long as their name
convenctions are followed.
2016-1-8
'''
module=importlib.import_module("MyTestCase")
module_dir=dir(module)
#print("module content %s"%module_dir)
for element in module_dir:
if(isinstance(element, object) and (element.startswith('myUT_'))):
print("%s is class"%(element))
TestSuitClass = getattr(module, element)
#instantiate an object
obj=TestSuitClass()
#根据一个类,去找它的以“test_”开头的成员函数,并自动执行
#get function list from a class
func_names=dir(TestSuitClass)
for func_name in func_names:
if func_name.startswith('test_'):
print("run func %s automatically"%func_name)
#get function
func=getattr(obj,func_name)
#call this function
func()
return
if __name__== '__main__':
main()
============
MyTestCase.py 内容如下
==============
import unittest
import xmlrunner
import os
import re
import time
from unittest.case import TestCase
def start():
print("myfunc() is called")
class myUT_case5(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_abs(self):
print("myUT_case5.test_abs is called")
#raise Exception("this case fail")
def test_price(self):
print("myUT_case5.test_price is called")
def test_quantity(self):
print("myUT_case5.test_quantity is called")
def _private(self):
print("myUT_case5._private is called")
class myUT_case1(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_name(self):
print("myUT_case1.test_name is called")
#raise Exception("this case fail")
def test_getlocation(self):
print("myUT_case1.test_getlocation is called")
def test_getID(self):
print("myUT_case1.test_getID is called")
def _private(self):
print("myUT_case1._private is called")
class myUT_case2(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_calculate(self):
print("myUT_case2.test_Calculate is called")
#raise Exception("this case fail")
def test_func1(self):
print("myUT_case2.test_func1 is called")
def test_abc(self):
print("myUT_case2.test_abc is called")
def _private(self):
print("myUT_case2._private is called")
- python 例子: 实现动态加载类,并自动执行它定义的函数
- python 例子2: 利用 unittest 实现自动加载并执行它定义的方法
- String的类定义如下,实现它的成员函数
- vb动态加载dll的一个类,实现vb动态加载dll并动态调用dll导出的函数的一个方便办法
- 加载SWF,访问它的脚本与提取类定义
- Nvelocity 实现动态加载 例子
- 定义一个特化的模板类并实现四则运算的重载的例子
- Python动态加载模块的实现
- python动态加载模块、类、函数
- 动态加载JS文件并执行
- 动态加载JS文件并执行
- Java动态编译源代码并加载执行
- 声明一个类MyString,定义它里面的各个函数
- javascript函数的静态加载与动态执行
- ExtJS+Struts 实现树的动态加载小例子
- ExtJS+Struts 实现树的动态加载小例子
- vb.net动态加载dll并执行dll中的某一个函数
- 动态加载js文件并调用其中的函数封装
- sublime text 2 / 3 中文输入法
- Android里面的AutoCompleteTextView和MultiAutoCompleteTextView
- Android属性动画实战教程开篇
- Sonar 5.2 maven相关安装配置工作
- 目前比较流行的组合:Fragment+ViewPager
- python 例子: 实现动态加载类,并自动执行它定义的函数
- C 删除字符串中的字符
- Binder最关键的机制总结
- viewpager和fragment实现预加载和fragment的单一加载
- mybatis generator怎么使用?maven使用方法介绍
- Spring Boot 性能优化
- 基于BoW模型的图像分类 Image Classification with Bag of Visual Words
- Android开发笔记(四十三)点击事件
- 给聊天记录加上日志