文档 pydoc模块
- 文档编写
- 在函数、类、方法定义后定义一个字符串即可
- 文档查看
- 使用 help() 函数和 doc 属性,在控制器中查看函数、类、方法的文档
- pydoc模块
- 方便地查看、生成帮助文档
python -m pydoc 模块名在控制台中查看- pydoc查看文档组织方式
- 文档说明 模块顶部注释
- class部分 列出模块所包含的全部类
- function 全部函数
- data 列出模块所包含的全部成员变量
- file 显示模块对应的源文件
- pydoc命令
python -m pydoc -w 模块名为指定的模块输出html文档python3 -m pydoc -w 目录名为指定目录生成 HTML 文档python3 -m pydoc -p 端口号指定端口号启动本地服务器来查看文档信息python3 -m pydoc -b通过打开浏览器来查看 Python 的所有模块的文档信息python -m pydoc -k 被搜索模块的部分内容
文档 doctest 模块
-
定义
- 通过 doctest 模块运行 Python 源文件的说明文档中的测试用例,从而生成测试报告
-
testmod()- 会自动提取该模块的说明文档中的测试用例,并执行这些测试用例,最终生成测试报告
-
测试报告内容
- 源文件
- 未通过用例
- 期望输出的结果
- 实际产生的输出
-
作用
- 文档测试工具(doctest)可以提取说明文档中的测试用例
doctest.testmod()提取文档测试用例比进行测试- 文档测试用例书写在文档字符串内,以python交互模式书写>>>
-
主代码示例
if __name__=='__main__': # 导入文档测试模块,调用testmod(),进行文档测试 import doctest doctest.testmod()
单元测试unittest
- 本质
- 通过给定参数来执行函数,然后判断函数的实际输出结果和期望输出结果是否一致
- 测试驱动开发
- 先编写测试用例
- 编写,修改代码逻辑
- 运行用例,不通过则重复1-2,直到所有用例测试通过
- 关键
- 测试驱动开发强调结果导向
unittest.TestCase内置了大量 assertXxx 方法来执行断言- 异常、错误、警告和日志进行断言判断
- 完成某种特定检查的断言
TestCase包含的针对特定类型的断言assertEqual()会根据参数类型自动应用assertMultiLineEqual(a, b),assertTupleEqual(a, b)...
- 单元测试类必须继承
unittest.TestCase且- 测试方法应该没有返回值
- 测试方法不应该有任何参数
- 测试方法应以test 开头
- 运行测试
unittest.main()python -m unittest 测试文件py -m unittest自动查找并运行当前目录下的所有测试用例
- 测试结果
- .通过 F失败 E出错 S跳过
TestSuite测试包
- 场景
- 测试包可以嵌套测试包
- 测试包(TestSuite)可以组织多个测试用例,间接组织装载测试类
- 程序可以使用测试运行器(TestRunner)来运行该测试包所包含的所有测试用例
unittest概念unittest.TestLoader()测试加载器loader.loadTestsFromTestCase(test_class)
unittest.TestSuite()测试包suite.addTests(tests)
unittest.TextTestRunner()测试运行器, 可指定测试报告输出runner.run(whole_suite())
- 测试用例类(TestCase的子类)
- 测试固件
Test Fixture- 代表执行一个或多个测试用例所需的准备工作,以及相关联的准备操作
- 准备工作可能包括创建临时数据库、创建目录、开启服务器进程等
setUp()方法用于初始化测试固件,而tearDown()方法用于销毁测试固件- 类似如php中的构造函数与析构函数
- @classmethod 类级别固件方法
setUpClass(cls), tearDownClass(cls)
python -m unittest -v fixture_test.py
- unittest跳过测试用例
- 使用
skipXxx装饰器来跳过测试用例@unittest.skip(reason)无条件跳过@unittest.skipIf(condition, reason)当 condition 为 True 时跳过@unittest.skipUnless(condition, reason)当 condition 为 False 时跳过
- 使用
TestCase 的 skipTest()方法来跳过测试用例
- 使用

本文介绍了Python的测试相关内容。pydoc模块可方便查看、生成帮助文档;doctest模块能运行源文件说明文档中的测试用例并生成报告;unittest用于单元测试,强调测试驱动开发;TestSuite测试包可组织多个测试用例,还介绍了测试固件、跳过测试用例等内容。
1197

被折叠的 条评论
为什么被折叠?



