前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >unittest系统(四)测试套件

unittest系统(四)测试套件

作者头像
雷子
发布2021-03-15 15:45:56
3760
发布2021-03-15 15:45:56
举报
文章被收录于专栏:雷子说测试开发

unittest系列分享:

unittest系统(一)unittest简介和示例

unittest系统(二)unittest的断言

unittest系统(三)unittest用例如何执行


前言

在前面的分享,我们分享了原理,断言,执行。这次我们分享测试套件。

正文

测试套件,我们利用它可以组织测试运行。那么如何实现呢。

代码语言:javascript
复制
def suite():    suite = unittest.TestSuite()    suite.addTest(TestDemo('testone'))    suite.addTest(TestDemo('testtwo'))    return suite
if __name__ == '__main__':    runner = unittest.TextTestRunner()    runner.run(suite())

这样,我们就组织好了,我们的测试套件,加入了两个用例。然后 利用TextTestRunner来执行用例,我们看下结果

其实,我们还可以根据文件夹组织我们的测试套件。我们可以将之前的测试用例再复制一下。

然后就有两个测试用例文件,那么如何通过文件夹加载组织我们的测试套件呢。

代码语言:javascript
复制
def suite():    import  os    path=os.getcwd()    suite=unittest.TestLoader().discover(path, pattern='test*.py', top_level_dir=None)    return suite
if __name__=="__main__":    runner = unittest.TextTestRunner()    runner.run(suite())

其实很简单,我们只需要从TestLoader 加载。匹配test开头的py文件,然后组合成测试套件。然后示例化TextTestRunner,去执行测试套件,我们来看下执行结果。

假如我们在测试过程中,需要获取suite的测试用例个数,怎么操作呢,直接操作如下:

代码语言:javascript
复制
print(suite.countTestCases())

运行下:

除了上面加载测试套件的方式,我们还可以用下面的方式加载。

代码语言:javascript
复制
def suite():    suit=unittest.TestSuite()    suit.addTests([TestDemo('testone'),TestDemo('testtwo')])    return suit
if __name__=="__main__":    runner = unittest.TextTestRunner()    runner.run(suite())

执行的结果是一样的

还有其他方法:

代码语言:javascript
复制
def suite():    suite = unittest.TestSuite()    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo))    return suiteif __name__=="__main__":       suitone=suite()    name=unittest.TextTestRunner()    name.run(suitone)
代码语言:javascript
复制
def suite():    suite = unittest.TestSuite()    suite.addTests(unittest.TestLoader().loadTestsFromName("testdemoone.TestDemo"))    return suite if __name__=="__main__":       suitone=suite()    name=unittest.TextTestRunner()    name.run(suitone)

上面两个方式都执行结果如下

我们在执行的时候还可以配置展示详细信息。

代码语言:javascript
复制
suitone=suite()name=unittest.TextTestRunner(verbosity=2)name.run(suitone)

结果就能展示详细信息

后记

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识,分享,点赞,在看--三连。

如果你有问题可以留言或者加我微信。2021,一起牛转钱坤,一起牛逼。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档