unittest系统(四)测试套件
在前面的分享,我们分享了原理,断言,执行。这次我们分享测试套件。
测试套件,我们利用它可以组织测试运行。那么如何实现呢
1 2 3 4 5 6 7 8 9 | 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的测试用例个数,怎么操作呢,直接操作如下:
1 | print (suite.countTestCases()) |
运行下:
除了上面加载测试套件的方式,我们还可以用下面的方式加载。
1 2 3 4 5 6 7 8 | def suite(): suit = unittest.TestSuite() suit.addTests([TestDemo( 'testone' ),TestDemo( 'testtwo' )]) return suit if __name__ = = "__main__" : runner = unittest.TextTestRunner() runner.run(suite()) |
执行的结果是一样的
还有其他方法:
1 2 3 4 5 6 7 8 | def suite(): suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDemo)) return suite if __name__ = = "__main__" : suitone = suite() name = unittest.TextTestRunner() name.run(suitone) |
1 2 3 4 5 6 7 8 | 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) |
上面两个方式都执行结果如下
我们在执行的时候还可以配置展示详细信息。
1 2 3 | suitone = suite() name = unittest.TextTestRunner(verbosity = 2 ) name.run(suitone) |
结果就能展示详细信息
如果你有问题可以留言或者加我微信:952943386。2021,一起牛转钱坤,一起牛逼。
欢迎扫码关注,文章首发在公众号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?