zoukankan      html  css  js  c++  java
  • 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,一起牛转钱坤,一起牛逼。

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

  • 相关阅读:
    退出程序
    筛选datatable
    1-2 开发环境搭建-Windows平台
    5-1 安全发布对象-发布与逸出
    4-4 线程安全性-可见性
    4-3 线程安全性-原子性-synchronized
    4-2 线程安全性-原子性-atomic-2
    4-1 线程安全性-原子性-atomic-1
    Spring
    Spring
  • 原文地址:https://www.cnblogs.com/leiziv5/p/14966327.html
Copyright © 2011-2022 走看看