zoukankan      html  css  js  c++  java
  • unittest--前置和后置

    前戏

    先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File->setting->Tools->Python Intergrated Tools->Default test runner->py.test选择后如果显示未安装,请先安装py.test

    import unittest
    
    
    class Test_case(unittest.TestCase):
    
        def test01(self):
            print('第一个测试用例')
    
        def test02(self):
            print('第二个测试用例')
    
    
    if __name__ == '__main__':
        unittest.main()

    结果:

    ..
    第一个测试用例
    
    第二个测试用例

    类要继承unittest.TestCase,下面的函数名要以test开头才会执行,.(点)表示成功了多少条用例,F表示失败的用例,E表示程序本身有问题

    import unittest
    
    
    class Test_case(unittest.TestCase):
    
        def setUp(self):
            print('我是前置条件')
    
        def tearDown(self):
            print('我是后置条件')
    
        def test01(self):
            print('第一个测试用例')
    
        def test02(self):
            print('第二个测试用例')
    
    
    if __name__ == '__main__':
        unittest.main()

    结果:

    ..
    我是前置条件
    第一个测试用例
    我是后置条件
    
    我是前置条件
    第二个测试用例
    我是后置条件

    setup在每条用例执行前执行,teatdown在每条用例执行完之后执行

    import unittest
    
    
    class Test_case(unittest.TestCase):
        @classmethod
        def setUpClass(cls):
            print('我是所有用例的前置')
    
        @classmethod
        def tearDownClass(cls):
            print('我是所有用例的后置')
    
        def setUp(self):
            print('我是前置条件')
    
        def tearDown(self):
            print('我是后置条件')
    
        def test01(self):
            print('第一个测试用例')
    
        def test02(self):
            print('第二个测试用例')
    
    
    if __name__ == '__main__':
        unittest.main()

    结果:

    我是所有用例的前置
    我是前置条件 第一个测试用例 我是后置条件
    我是前置条件 第二个测试用例
    我是后置条件 我是所有用例的后置

    setUpClass(cls)所有用例执行之前执行,要加@classmethod
    tearDownClass(cls)所有用例执行之后执行

    import unittest
    
    
    class Test_case(unittest.TestCase):
    
        def setUp(self):
            print('我是前置条件')
    
        def tearDown(self):
            print('我是后置条件')
    
        def test01(self):
            '''第一个测试'''
            print('test01')
    
        def test02(self):
            '''第二个测试'''
            print('test02')
    
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)  # 可以加参数

    结果:

    我是前置条件
    test01 (__main__.Test_case)
    test01
    我是后置条件
    第一个测试 ... ok
    我是前置条件 test02 (
    __main__.Test_case) test02 第二个测试 ... ok 我是后置条件

    verbosity有三个值

    0代表得到执行的测试总数和全局结果

    1代表得到成功的显示.失败的显示F,错误的显示E

    2可以得到详细的信息,可以打印出注释信息,在注释后面显示成功失败的信息

  • 相关阅读:
    系统编程-进程-fork深度理解、vfork简介
    九鼎S5PV210开发板的SD卡启动、uboot tftp升级内核镜像
    jiffies相关时间比较函数time_after、time_before详解
    Java基础第六章(循环结构二)
    Java基础第五章(循环结构一)
    Java基础第四章(选择结构二)
    Java基础第三章(选择结构一)
    Java基础第二章(变量、数据类型和运算符)
    Java基础第一章
    HTML iframe的使用
  • 原文地址:https://www.cnblogs.com/zouzou-busy/p/11408088.html
Copyright © 2011-2022 走看看