构造测试套件
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,...
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Spring系列框架、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug…
- 掘金LV3用户 juejin.cn/user/bug…
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug…
- 华为云云享专家 bbs.huaweicloud.com/bug…
构造测试套件
makeSuite()和TestLoader的应用
- makeSuite()
在
unittest
框架中提供了makeSuite()
方法,makeSuite
可以将测试用例类内的测试用例case组成套件TestSuite
unittest
调用makeSuite
传入类名即可!
- TestLoader()
TestLoader
用于创建类和模块的测试套件,一般的情况下,使TestLoader().loadTestsFromTestCase(TestClass)
来加载测试类。
下面就是组织成测试套件的3种方式
import unittest
from unitest_ import test1
from unitest_ import test2
def createsuite():
# addTest # 向测试套件里添加测试用例!
# suite = unittest.TestSuite()
# suite.addTest(unitest_.test1.Baidu1('test_baidu1'))
# suite.addTest(unitest_.test1.Baidu1('test_baidu2'))
# suite.addTest(unitest_.test2.test2('test_baidu1'))
# suite.addTest(unitest_.test2.test2('test_baidu2'))
# return suite
# makeSuite 通过addTest()方法,将一个类的的测试用例通过makeSuite添加
# suite = unittest.TestSuite()
# suite.addTest(unittest.makeSuite(test1.Baidu1))
# suite.addTest(unittest.makeSuite(test2.test2))
# return suite
#通过TestLoader将测试用例组织成测试套件!
#先加载
s1 = unittest.TestLoader().loadTestsFromTestCase(test1.Baidu1)
s2 = unittest.TestLoader().loadTestsFromTestCase(test2.test2)
suite = unittest.TestSuite([s1,s2])
return suite
if __name__=='__main__':
suit = createsuite()
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suit)
上面的3种只能导入一个类,当我们不用一个
.py
测试类,我们只需要导入一个方法该如何操作呢?
discover()的引用
discover
是通过递归的方式到其子目录中从指定的目录开始, 找到所有测试模块并返回一个包含它们
对象的TestSuite
,然后进行加载与模式匹配唯一的测试文件,discover
参数分别为discover(dir,pattern,top_level_dir=None)
import unittest
from unitest_ import test1
from unitest_ import test2
def createsuite():
discover = unittest.defaultTestLoader.discover('../test1',pattern='test*.py',top_level_dir=None)
print(discover)
return discover
if __name__=='__main__':
suit = createsuite()
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suit)
用例的执行顺序
unittest
框架默认加载测试用例的顺序是根据ASCII
码的顺序,数字与字母的顺序为: 0~ 9 ,A~ Z,a~z 。所以,TestAdd
类会优先于TestBdd
类被发现,test_aaa()
方法会优先于test_ccc()
被执行。对于测试
目录与测试文件来说,unittest
框架同样是按照这个规则来加载测试用例。
addTest()方法按照增加顺序来执行
忽略用例执行
我们通过
unittest
下的一个注解实现测试用例的忽略功能!
@unitest.skip('忽略用例的注释')
运行结果
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)