当前位置: 首页 > 后端技术 > Python

unittest系统(四)测试套件

时间:2023-03-25 23:55:41 Python

在之前的分享中,我们分享了原理、断言、执行。这次我们分享测试套件。测试套件,我们可以用它来组织测试运行。那么如何实现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,一起转账,一起加油。欢迎扫码关注,文章首发于公众号