在后面的分享,咱们分享了原理,断言,执行。这次咱们分享测试套件。
测试套件,咱们利用它能够组织测试运行。那么如何实现呢
<code class="js">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来执行用例,咱们看下后果
其实,咱们还能够依据文件夹组织咱们的测试套件。咱们能够将之前的测试用例再复制一下。
而后就有两个测试用例文件,那么如何通过文件夹加载组织咱们的测试套件呢。
<code class="js">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())
运行下:
除了下面加载测试套件的形式,咱们还能够用上面的形式加载。
<code class="js">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,一起牛转钱坤,一起牛逼。
欢送扫码关注,文章首发在公众号