修改unittest发现测试方法的规则

修改unittest发现测试⽅法的规则
⽂章⽬录
unittest 能⾃动发现并执⾏测试⽤例,规则如下:
⾸先指定要查的⽬录(默认是当前⽬录)。
爬梯电动轮椅如果⼦⽬录属于 Python 包,则也加⼊查范围。
然后在该⽬录下查名称匹配 test*.py 的⽂件。
接着在该⽂件中查继承 unittest.TestCase 的类,
最后查该类中名称以 test 开头的⽅法,作为测试⽤例来执⾏。
为了发现不是以 test 开头的测试⽅法,乃⾄更灵活地匹配,本⽂定义了⼀个继承 unittest.TestLoader 的⼦类。代码
import sys
import unittest
import functools
from fnmatch import fnmatchcase汽车除霜器
class MyTestLoader(unittest.TestLoader):
testNamePatterns =None
def getTestCaseNames(self, testCaseClass):
"""
橡胶补强剂Customize this code to allow you to filter test methods through testNamePatterns.
"""
def shouldIncludeMethod(attrname):
if not attrname.stMethodPrefix):
滤波装置
return False
testFunc =getattr(testCaseClass, attrname)
铭牌制作
if not callable(testFunc):
return False
折叠炕桌
stNamePatterns is None or \
any(fnmatchcase(attrname, pattern)for pattern stNamePatterns)
testFnNames =list(filter(shouldIncludeMethod,dir(testCaseClass)))
if self.sortTestMethodsUsing:
testFnNames.sort(p_to_key(self.sortTestMethodsUsing))
return testFnNames
if __name__ =='__main__':
testLoader = MyTestLoader()
result = unittest.TextTestRunner(verbosity=2).run(discovered_tests)
运⾏效果
[root@CentOS ~]# python3 runner.py
minus_test (test1.TestMath) ... FAIL
test_add (test1.TestMath) ... ok

本文发布于:2024-09-21 21:43:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/104172.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:测试   查找   匹配   名称   轮椅   补强
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议