unittest系列分享:
前言
在前面的分享,我们分享了原理,断言,执行。这次我们分享测试套件。
正文
测试套件,我们利用它可以组织测试运行。那么如何实现呢。
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 suiteif __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)
结果就能展示详细信息
后记
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识,分享,点赞,在看--三连。
如果你有问题可以留言或者加我微信。2021,一起牛转钱坤,一起牛逼。