• 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)


  • 相关阅读:
    shell 命令
    unzip解压失败 添加tar 解压
    tomcat
    Linux常用命令
    压缩归档与解压
    Linux的任务计划管理
    A01. openstack架构实战-openstack基本环境准备
    ubuntu16.04 server版破解密码
    Ubuntu Server 18.04 网络设置不生效的解决
    带宽单位 Mbps 及换算方式
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10094546.html
Copyright © 2020-2023  润新知