在之前的分享中,我们分享了原理、断言、执行。这次我们分享测试套件。测试套件,我们可以用它来组织测试运行。那么如何实现defsuite():=unittest.TextTestRunner()runner.run(suite()) 这样我们就组织好了,我们的testsuite增加了两个用例。然后使用TextTestRunner来执行用例,我们来看看结果。其实我们也可以按照文件夹来组织我们的测试套件。我们可以再次复制之前的测试用例。然后是两个测试用例文件,那么如何通过文件夹加载来组织我们的测试用例。defsuite():importospath=os.getcwd()suite=unittest.TestLoader().discover(path,pattern='test*.py',top_level_dir=None)如果__name__=="__main__"则返回套件:runner=unittest.TextTestRunner()runner.run(suite())其实很简单,我们只需要从TestLoader中加载即可。匹配测试开始时的py文件,然后将它们组合成一个测试套件。然后实例化TextTestRunner以执行测试套件。让我们看看执行结果。如果我们在测试过程中需要获取套件中测试用例的个数,如何获取,直接操作如下:print(suite.countTestCases()) 运行一下:除了方法加载上面的测试套件,我们也可以通过下面的方式加载。defsuite():suit=unittest.TestSuite()suit.addTests([TestDemo('testone'),TestDemo('testtwo')])返回suitif__name__=="__main__":runner=unittest.TextTestRunner()runner.run(suite()) 的执行结果是一样的。还有其他方法:defsuite():suite=unittest.TestSuite()suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo))returnsuiteif__name__=="__main__":suitone=suite()name=unittest.TextTestRunner()name.run(suitone) defsuite():suite=unittest.TestSuite()suite.addTests(unittest.TestLoader().loadTestsFromName("testdemoone.TestDemo"))如果__name__==返回套件__main__":suitone=suite()name=unittest.TextTestRunner()name.run(suitone) 上面两种方法的执行结果如下执行时也可以配置显示详情。suitone=suite()name=unittest.TextTestRunner(verbosity=2)name.run(suitone) 结果会显示详细信息。有问题可以留言或加我微信:952943386。2021,一起转账,一起加油。欢迎扫码关注,文章首发于公众号
