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

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

  • 相关阅读:
    xdebug安装教程
    如何查看Linux操作系统的位数
    getconf命令【一天一个命令】
    redis 数据类型详解 以及 redis适用场景场合
    Redis和Memcache对比及选择
    无交换机实现集群网络互联
    性能调优攻略
    Chrome 插件集推荐
    在 Linux 下将 PNG 和 JPG 批量互转的四种方法
    Flashback for MySQL 5.7
  • 原文地址:https://www.cnblogs.com/leiziv5/p/14966327.html
Copyright © 2011-2022 走看看