zoukankan      html  css  js  c++  java
  • 3秒钟unittest入门使用

    一:unittest跑起来

    unittest使用,具体使用方式可以查看unittest官网,以下简单做个介绍,在工作中使用最多的

    #
    第一步:

    创建unittest类,且一定要继承unittest.TestCase

    class MytestDemo(unittest.TestCase):
    

     

    第二步:

    创建你要运行的方法,且一定是用test开头,unittest是检测test开头就会认为有运行方法,如果不用test开头就不用

    def test_show():
    
        print(运行成功)
    

      

    第三步:

    运行,使用main入口

    if __name__ == '__main__':
    
        unittest.main()

    好了至此,你就已经是使用unittest框架了

    但是这样其实在工作中不能满足我们,我们在执行测试方法前都会做一些前置条件,依赖于unittest中的几个方法

    二、增加初始化的方法,

    在类中,添加,setUp (前置方法,每次运行方法时就会运行),tearDown(运行完后的后置处理,每个方法运行时就会运行)setUpClass(第一次运行类时,开始运行)

    #coding=utf-8
    import unittest
    import requests
    
    class MytestDemo(unittest.TestCase):
        '''
        http: // www.kuaidi100.com / query?type = 快递公司代号 & postid = 快递单号
        测试用例
        ps:快递公司编码:申通 = "shentong"
        EMS = "ems"
        顺丰 = "shunfeng"
        圆通 = "yuantong"
        中通 = "zhongtong"
        韵达 = "yunda"
        天天 = "tiantian"
        汇通 = "huitongkuaidi"
        全峰 = "quanfengkuaidi"
        德邦 = "debangwuliu"
        宅急送 = "zhaijisong"
        number=1
        '''
        @classmethod
        def setUpClass(cls):
            print("第一次运行类时调用")
    
    
        def setUp(self):
            self.url = "http://www.kuaidi100.com/query"
            self.headers1 = { 'Connection': 'keep-alive'}
    
        def tearDown(self):
            print("后面收尾")
    
        def test_yuantong(self):
            url=self.url+"?type=yuantong&postid=11111111111"
            result=requests.get(url=url,headers=self.headers1)
            print(result.url)
            print(result.text)
    
        def test_tiantian(self):
            data = "type=tiantian&postid=11111111111"
            result = requests.get(url=self.url, params=data,headers=self.headers1 )
            print("************")
            print(result.url)
            print(result.text)
    if __name__ == '__main__':
        unittest.main()
    

      我使用了两个方法,一个圆通,一个天天,self.url就是获取在setUp中的url,显示内容:

     三、运行

    3.1 单个类运行

    在类的方法旁边,使用运行,运行单个方法

    3.2: 整体运行

    在main中运行,

    在运行方式中,unittest.main(),还有几种方式表示

    使用unittest.TestSuite()集合方式运行,这种方式可以在单个类中运行,也可以在运行多个文件

    if __name__ == '__main__':
        #unittest.main()
        suite = unittest.TestSuite()
        suite1 = unittest.TestLoader().loadTestsFromTestCase(MytestDemo)
        # 增加文件
        suite.addTest(suite1)
        unittest.TextTestRunner().run(suite1)

     针对TestLoader运行方式有几种,类名,文件名,运行方法名,后续在写一篇

  • 相关阅读:
    【剑指Offer-分解让复杂问题简单化】面试题38:字符串的排列
    【剑指Offer-分解让复杂问题简单化】面试题37:序列化二叉树
    【剑指Offer-分解让复杂问题简单化】面试题35:复杂链表的复制
    【剑指Offer-举例让抽象问题具体化】面试题34:二叉树中和为某一值的路径
    Git操作时遇到的一些问题和相应的处理方式
    Git分支规范说明
    敏捷的原则和价值观
    MongoDB批量更新和批量插入的方式
    请求地址中含有特殊字符#时如何有效处理
    IntelliJ IDEA Ultimate 6.2 版本免费试用期过期后如何破解
  • 原文地址:https://www.cnblogs.com/chongyou/p/11458377.html
Copyright © 2011-2022 走看看