• Python Unittest


    一、什么是测试夹具

    • 定义单个或者多个测试所需的环境准备(setUp),以及环境清理(tearDown)。

    • 例:连接数据库,或者创建Selenium WebDriver driver实例

    二、测试夹具有什么作用。

    • 为每一个测试用例提供用例测试环境准备和清理,为每一个用例提供干净的测试环境。
    • 为每一组测试提供用例测试环境准备和清理,为每一组测试提供干净的测试环境。

    三、Unittest 三种测试夹具的使用例子。

    1、 Unittest 测试夹具 setUp/tearDown

    • setUp 每个用例运行前执行
    • tearDown 每个用例运行后执行

    test_example_one.py

    # encoding:utf8
    
    
    import unittest
    
    
    class TestCaseOne(unittest.TestCase):
    
        def setUp(self):
            print('---每个用例运行前执行---')
    
        def tearDown(self):
            print('---每个用例运行结束后执行---')
    
        def test_case_one(self):
            print('--- 测试用例 1 ---')
    
        def test_case_two(self):
            print('--- 测试用例 2---')
    
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)
    
    

    运行结果

    test_case_one (__main__.TestCaseOne) ... 
    ---每个用例运行前执行---
    --- 测试用例 1 ---
    ---每个用例运行结束后执行---
    ok
    
    test_case_two (__main__.TestCaseOne) ... 
    ---每个用例运行前执行---
    --- 测试用例 2---
    ---每个用例运行结束后执行---
    ok
    

    2、 Unittest 测试夹具setUpClass/tearDownClass

    • setUpClass 每个测试类里,执行一次,在所有用例运行前执行
    • tearDownClass 每个测试类里,执行一次,在所有用例运行后执行

    test_example_two.py

    # encoding:utf8
    
    import unittest
    
    class TestCaseOne(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            print('---每个测试类里,执行一次,在所有用例运行前执行---')
    
        @classmethod
        def tearDownClass(cls):
            print('---每个测试类里,执行一次,在所有用例运行后执行---')
    
        def test_case_one(self):
            print('--- 测试用例 1 ---')
    
        def test_case_two(self):
            print('--- 测试用例 2---')
    
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)
    

    运行结果

    ---每个测试类里,执行一次,在所有用例运行前执行---
    test_case_one (__main__.TestCaseOne) ... --- 测试用例 1 ---
    ok
    test_case_two (__main__.TestCaseOne) ... --- 测试用例 2---
    ok
    ---每个测试类里,执行一次,在所有用例运行后执---
    

    3、 Unittest 测试夹具setUpModule/tearDownModule

    • setUpModule 每个模块里,执行一次,在所有用例运行前执行
    • tearDownModule 每个模块里,执行一次,在所有用例运行后执行

    test_example_three.py

    # encoding:utf8
    
    import unittest
    
    def setUpModule():
        print('--- 模块运行开始时 ,运行一次 ---')
    
    def tearDownModule():
        print('--- 模块运行结束时 ,运行一次 ---')
    
    class TestCaseOne(unittest.TestCase):
    
        def test_case_one(self):
            print('--- 测试用例 1 ---')
    
        def test_case_two(self):
            print('--- 测试用例 2---')
    
    class TestCaseTwo(unittest.TestCase):
    
        def test_case_three(self):
            print('--- 测试用例 3 ---')
    
        def test_case_four(self):
            print('--- 测试用例 4---')
    
    
    
    
    if __name__ == '__main__':
        unittest.main(verbosity=2)
    
    

    运行结果

    --- 模块运行开始时 ,运行一次 ---
    test_case_one (__main__.TestCaseOne) ... --- 测试用例 1 ---
    ok
    test_case_two (__main__.TestCaseOne) ... --- 测试用例 2---
    ok
    test_case_four (__main__.TestCaseTwo) ... --- 测试用例 4---
    ok
    test_case_three (__main__.TestCaseTwo) ... --- 测试用例 3 ---
    ok
    --- 模块运行结束时 ,运行一次 ---
    

    ### Github 源码地址: [https://github.com/SEtester/how_to_run_test_case](https://github.com/SEtester/how_to_run_test_case)


  • 相关阅读:
    BeanUtils.copyProperties的用法
    WinRAR下载
    安装Perl
    @Value设置默认值
    AutoHotkey
    解决springboot启动日志异常问题
    除以2换成位移操作(骚)
    IDEA生成doc文档生成chm文档
    VMWare虚拟机网络配置
    EOF小结
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10094546.html
Copyright © 2020-2023  润新知