Python Unittest - Test Fixtures 测试夹具
2018-12-10 01:42
344 查看
一、什么是测试夹具
定义单个或者多个测试所需的环境准备(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
相关文章推荐
- Macaca+HTMLTestRunner测试报告模式修改,基于python unittest 测试框架扩展
- python的unittest测试框架的扩展浅谈
- Python+request+unittest实现接口测试框架集成实例
- python:unittest(测试框架)
- Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_01——测试接口服务
- Python单元测试unittest加载方式之二:加载测试套件
- python实现接口测试到unittest框架集成
- Python的unittest做参数化测试
- python接口自动化测试(八)-unittest-生成测试报告
- 【python单元测试unittest】加载测试套的代码修正
- python unittest 测试结束后发送测试报告
- python的unittest框架中如何删除测试数据,清理环境,可以通过addCleanup函数
- Python接口测试之unittest框架(五)
- Python unittest 参数化测试
- Python Unittest 自动化单元测试框架Demo
- Python-unittest测试框架
- python unittest测试框架介绍
- Python 下的unittest测试框架
- python实例编写(6)--引入unittest测试框架,构造测试集批量测试(以微信统一管理平台为例)
- python+requests+unittest API接口测试实例(详解)