在前面的分享,我们分享了原理,断言,执行。这次我们分享测试套件。

测试套件,我们利用它可以组织测试运行。那么如何实现呢

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来执行用例,我们看下结果

unittest系统(四)测试套件_测试用例

其实,我们还可以根据文件夹组织我们的测试套件。我们可以将之前的测试用例再复制一下。

unittest系统(四)测试套件_用例_02

然后就有两个测试用例文件,那么如何通过文件夹加载组织我们的测试套件呢。

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,去执行测试套件,我们来看下执行结果

unittest系统(四)测试套件_用例_03

假如我们在测试过程中,需要获取suite的测试用例个数,怎么操作呢,直接操作如下:

print(suite.countTestCases())   运行下:

unittest系统(四)测试套件_加载_04 除了上面加载测试套件的方式,我们还可以用下面的方式加载。

def suite():
suit=unittest.TestSuite()
suit.addTests([TestDemo('testone'),TestDemo('testtwo')])
return suit

if __name__=="__main__":
runner = unittest.TextTestRunner()
runner.run(suite())

  执行的结果是一样的

unittest系统(四)测试套件_用例_05

还有其他方法:

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)

  上面两个方式都执行结果如下

unittest系统(四)测试套件_加载_06

我们在执行的时候还可以配置展示详细信息。

suitone=suite()
name=unittest.TextTestRunner(verbosity=2)
name.run(suitone)

   结果就能展示详细信息

unittest系统(四)测试套件_加载_07

2021,一起牛转钱坤,一起牛逼。

欢迎扫码关注公众号

unittest系统(四)测试套件_测试_08