在前面的分享,我们分享了原理,断言,执行。这次我们分享测试套件。
测试套件,我们利用它可以组织测试运行。那么如何实现呢
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,一起牛转钱坤,一起牛逼。
欢迎扫码关注,文章首发在公众号