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

 


 

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


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来执行用例,我们看下结果

 

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

 

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

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的测试用例个数,怎么操作呢,直接操作如下:

print(suite.countTestCases())

  运行下:

 

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

def suite():
    suit=unittest.TestSuite()
    suit.addTests([TestDemo('testone'),TestDemo('testtwo')])
    return suit
​
if __name__=="__main__":
    runner = unittest.TextTestRunner()
    runner.run(suite())

  执行的结果是一样的

 

 还有其他方法:

def suite():
    suite = unittest.TestSuite()
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo))
    return suite
if __name__=="__main__":   
    suitone=suite()
    name=unittest.TextTestRunner()
    name.run(suitone)

  

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)

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

 

 

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

suitone=suite()
name=unittest.TextTestRunner(verbosity=2)
name.run(suitone)

  

结果就能展示详细信息

 

 

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

欢迎扫码关注,文章首发在公众号

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/leiziv5/p/14966327.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!