zoukankan      html  css  js  c++  java
  • UnitTest 用法

    功能

    1.能组织多个用例去执行

    2.提供丰富的断言方法

    3.提供丰富的日志与测试结果

    核心要素

    1.TestCase

    2.TestSuite

    3.TextTestRunner

    4.Fixture

    用法

    1.TestCase

    import unittest
    '''
    类,方法必须以test开头
    '''
    
    def add(a,b):
        return a+b
    
    class TestCase01(unittest.TestCase):
        def testcase_01(self):
            print("testcase_01")
            print(add(2,2))
            self.assertEqual(3,add(2,2))
    
        def testcase_02(self):
            #alt +鼠标连选,一起修改
            print("testcase_02")
    
        def testcase_03(self):
            print("testcase_03")
            print(add(3,2))
    
    class TestCase02(unittest.TestCase):
        def testcase_01(self):
            print("TestCase02_testcase_01")def testcase_02(self):
            print("TestCase02_testcase_02")
    
        def testcase_03(self):
            print("TestCase02_testcase_03")if __name__=='__main__':
        #用main来执行,多线程没有规律
        unittest.main()

    该文件可以执行单个测试用例,鼠标选中要执行的用例,右键,

    也可以整个类一起执行,鼠标点中要执行的class,右键选择上图同样的按钮

    还可以整个文件一起运行,利用main函数

     2.TestSuite,3.TextTestRunner

    挑选用例执行,最大范围是测试类

    TextTestRunner执行测试用例

    import unittest
    #导入类
    from unitTest.testcase import TestCase01, TestCase02
    
    suite=unittest.TestSuite()
    #添加测试用例:以测试用例类中的每一种方法为单位进行添加
    suite.addTest(TestCase02("testcase_02"))
    
    #添加测试用例:以测试用例类为单位进行添加
    suite.addTest(unittest.makeSuite(TestCase01))
    #cltrl+d 复制粘贴
    
    #利用TextTestRunner运行测试用例
    runner=unittest.TextTestRunner()
    runner.run(suite)
    总结:
    以测试用例类中的每一种方法为单位进行添加
    suite.addTest(TestCase02("testcase_02"))
    以测试用例类为单位进行添加

     

    suite.addTest(unittest.makeSuite(TestCase01))

    4、discover

    挑选用例执行,可以选择python文件

    import unittest
    
    #用例文件的路径  ./cases 路径,test*.py 执行操作的文件
    discover = unittest.defaultTestLoader.discover("./cases",pattern='test*.py')
    runner=unittest.TextTestRunner()
    runner.run(discover)

    5、断言

    import unittest
    '''
    类,方法必须以test开头
    '''
    
    def add(a,b):
        return a+b
    
    class TestCase01(unittest.TestCase):
        def testcase_01(self):
            print("testcase_01")
            print(add(2,2))
            try:
                self.assertEqual(4,add(1,2))
            except AssertionError as e:
                print("报错信息",e)
                raise
  • 相关阅读:
    [歌词]世界末日
    AJAX是什么?
    [转]Moving Your Access 2002 Database to SQL Server
    .net from身份验证的配置介绍
    ajax
    cmd常用命令
    查看端口解除端口占用
    好久没进来了,今天发一个原创的DatePicker
    真倒霉,前不久分區表錯誤把我數據全部搞沒了
    DataGrid利用DataView过滤,排序
  • 原文地址:https://www.cnblogs.com/wangxue1314/p/13493259.html
Copyright © 2011-2022 走看看