乐趣区

关于python:unittest系统四测试套件

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

测试套件,咱们利用它能够组织测试运行。那么如何实现呢

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,一起牛转钱坤,一起牛逼。

欢送扫码关注,文章首发在公众号

退出移动版