zoukankan      html  css  js  c++  java
  • 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用的

    
    
    
  • 相关阅读:
    我的五年百度博客文章列表
    servlet过滤器2 解决用户非法在线 filter
    flexpaper实例在浏览器无法显示的解决办法
    我的五年百度博客文章列表(带链接版)
    servlet过滤器1 解决字符集乱码 filter
    GBK和UTF8之间的战争,websphere6.1乱码解决方案
    ORACLE SQL性能优化系列 (一)
    ORACLE SQL性能优化系列 (四)
    Oracle优化SQL查询优化研究
    用SQL*Loader将Excel数据导出到Oracle
  • 原文地址:https://www.cnblogs.com/zunchang/p/8149259.html
Copyright © 2011-2022 走看看