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


  • 相关阅读:
    六、使用media实现响应式布局
    五、块全屏居中
    四、圆角长方形的设计
    三、常用行内元素与块元素
    二、“…”显示超出文本
    一、CSS实现横列布局的方法总结
    window如何一键关闭所有进程程序
    纯css竟可以做出边框这样长宽度的过渡效果
    改变网页的兼容性模式
    bootstrap知识笔记
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10094546.html
Copyright © 2020-2023  润新知