zoukankan      html  css  js  c++  java
  • 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)


  • 相关阅读:
    Java的常量接口思考,项目中的常量是放在接口里还是放在类里呢?
    有些时候会看到url参数上出现%BF之类
    mysql 取整
    MySQL使用判断
    java 获得当前时间前指定几个小时的时间?
    SVN集成compare4比较软件
    JAVA去重
    连接SQL常见问题
    springMVC项目部署 服务器启动spring容器报错bean未从类加载器中找到
    Java 中Timer和TimerTask 定时器和定时任务使用的例子
  • 原文地址:https://www.cnblogs.com/snailrunning/p/10094546.html
Copyright © 2011-2022 走看看