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