• python-unittest学习


    在说unittest之前,先说几个概念:

    TestCase 也就是测试用例

    TestSuite 多个测试用例集合在一起,就是TestSuite

    TestLoader是用来加载TestCase到TestSuite中的

    TestRunner是来执行测试用例的,测试的结果会保存到TestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息

    先写一个简单的单元测试:

    import unittest
    # 1.定义一个测试类,类下面有测试方法
    # 2.方法中调用assertEqual做校验
    # 3.最后用unittest.main()运行所有测试用例

    class My(unittest.TestCase):
    def testa(self):
    self.assertEqual(1,1)

    def kkk(self):#不是以test开头的方法不会被执行
    self.assertEqual(1,2)

    def test_kkk2(self):
    self.assertEqual(1,3)

    class My2(unittest.TestCase):
    def test_kkk3(self):
    '''这是kkk3的测试用例'''
    self.assertEqual(1,1)

    def test_kkk4(self):
    '''这是test4'''
    self.assertEqual(1,2)
    if __name__ =="__main__":
    unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行

    ===================================================
    再来一个 单元测试2--会生成测试报告的单元测试

    import unittest,HTMLTestRunner,xmlrunner

    class My(unittest.TestCase):
    def test_kkk(self):
    self.assertEqual(1,1)

    def kkk(self): #不是以test开头的测试用例 不会被执行
    self.assertEqual(1,2)

    def test_kkk2(self):
    '''这是用例2''' #这是加用例的注释
    self.assertEqual(1,2)

    class My2(unittest.TestCase):
    def test_kkk3(self):
    '''这是用例3''' #这是加用例的注释
    self.assertEqual(2,2)

    if __name__ == '__main__':
    # unittest.main() #unittest.main() 会找到你所有的测试用例,并将起全部运行
    suite = unittest.TestSuite() #定义一个空的测试集合
    suite.addTest(My('test_kkk2')) #导入单个测试用例
    suite.addTest(unittest.makeSuite(My2)) #导入类下面的全部测试用例
    # fw = open('report_kkk.html','wb') #二进制的意思,就是有时候保存一些图片或者文本文件的时候就用wb
    # runner = HTMLTestRunner.HTMLTestRunner(stream=fw,title='kkk自动化测试报告',description='描述描述')
    # runner.run(suite)

    #----------下面这个是生成xml格式的测试报告的代码--------------
        # runner2 = xmlrunner.XMLTestRunner(output='.')  #点 代表当前目录
    runner2 = xmlrunner.XMLTestRunner(output='report') #report 为指定目录名
    runner2.run(suite)

    这是单元测试2的report


    下面是xml格式的测试报告--xml格式主要是个后面集成到jenkins用的

    
    
    
  • 相关阅读:
    实现一个简单的Http代理服务器
    微软的反向代理库YARP
    Elastic Search 基础——分析(Analysis)
    Elastic Seach基础—映射(Mapping)
    使用WebView2在.Net程序中集成Edge chromium
    Asp.net Core中实现自定义身份认证
    在Razor Pages的Url中增加扩展名后缀
    利用Aria2构造自己的下载工具(一)
    Mongodb中GUID的显示问题
    在Eclipse中使用MAT分析Android程序内存使用状况(转)
  • 原文地址:https://www.cnblogs.com/zunchang/p/8149259.html
Copyright © 2020-2023  润新知