pytest测试实战 童书●育儿
[美] Brian Okken
华中科技大学出版社(2018-8-1)
69.9元 / 240页
9787568044424
标签: Python pytest 测试 Python美女蛇 fixture 程序设计
pytest是动态编程语言Python专用的测试框架,它具有易于上手、功能强大、第三方插件丰富、效率高、可扩展性好、兼容性强等特点。《pytest测试实战》深入浅出地讲解了pytest的使用方法,尤其是具有特色的fixture的用法。作者通过丰富的测试实例,手把手教读者编写简洁、易于维护的测试代码和插件,让你轻松掌握这个业界最受欢迎的Python测试工具。
.
第1章介绍pytest的安装,同时会介绍Tasks项目的数据结构部分(名为Task的namedtuple),并用它作为测试示例。我们会学习如何指定测试文件运行,以及pytest常用的命令行命令,包括重新运行失败测试、遇到失败即停止所有测试、控制堆栈跟踪、控制日志输出,等等。
.
第2章将使用pip在本地安装Tasks项目,学习在Python项目中如何组织测试目录,这样才能针对实际项目编写测试用例。这一章的所有示例都依赖外部程序,包括数据库写入。
.
第2章的重点是测试函数,你将学习在pytest中高效使用断言语句。这一章还会讲解marker标记功能的用法,marker标记可以将测试进行归类或分组,方便一起运行,也可以将某些测试标记为skip(跳过不执行),marker标记还可以告诉pytest我们知道某些测试是一定会失败的。如果希望运行指定的测试子集,除了使用marker,还可以将测试代码组织成测试目录、测试模块、测试类,然后运行。
.
并非所有的测试代码都要放到测试函数中。第3章介绍如何将测试数据、启动逻辑、销毁逻辑放入fixture(pytest定义的一种测试脚手架)。设置系统(或子系统、系统单元)是软件测试的重要环节,第3章将介绍用一个简单的fixture完成这方面的工作(包括对数据库进行初始化,写入数据以备测试之用)。Fixture模块的功能非常强大,你可以利用它简化测试代码,从而提高代码的可读性和可维护性。Fixture像测试函数一样,也有参数。利用参数,你只需要编写一份代码,就可以针对TinyDB和MongoDB(或其他Tasks项目支持的数据库)开展测试。
.
第4章介绍pytest内置的fixture以满足测试中常见的一些需求,包括生成和销毁临时目录、截取输出流(通过日志判定结果)、使用monkey patch、检查是否发出警告,等等。
.
第5章讲解如何在pytest中添加命令行选项,如何改进打印输出,如何打包分发自己编写的插件,如何共享定制化的pytest(包括fixture)。这一章开发的插件可以改善Tasks项目测试失败时的输出呈现方式。你还将学习测试自己的测试插件(元测试)。读完这一章,想必你已经等不及编写自己的插件了。附录C收集了一些热门的社区插件,可供参考。
.
第6章讲解通过pytest.ini文件修改默认配置,自定义pytest的运行方式。pytest.ini文件可以存放某些命令选项,从而减少你重复输入命令的次数;利用它还可以指定pytest忽略某些测试目录,或者指定pytest的最低版本,等等。使用tox.ini和setup.cfg文件也可以实现同样的功能。
.
第7章(最后一章)介绍pytest与其他工具的结合使用。我们将借助tox让Tasks项目在多个Python版本上运行;学习如何测试Tasks项目的CLI部分,而不必mock系统的其余部分;借助coverage.py检查Tasks项目代码块的测试覆盖情况;通过Jenkins发起测试并实时显示结果。最后,还会学习如何让pytest运行基于unittest的测试用例,以及把pytest的fixture共享给unittest的测试用例使用。
华中科技大学出版社(2018-8-1)
69.9元 / 240页
9787568044424
标签: Python pytest 测试 Python美女蛇 fixture 程序设计
pytest是动态编程语言Python专用的测试框架,它具有易于上手、功能强大、第三方插件丰富、效率高、可扩展性好、兼容性强等特点。《pytest测试实战》深入浅出地讲解了pytest的使用方法,尤其是具有特色的fixture的用法。作者通过丰富的测试实例,手把手教读者编写简洁、易于维护的测试代码和插件,让你轻松掌握这个业界最受欢迎的Python测试工具。
.
第1章介绍pytest的安装,同时会介绍Tasks项目的数据结构部分(名为Task的namedtuple),并用它作为测试示例。我们会学习如何指定测试文件运行,以及pytest常用的命令行命令,包括重新运行失败测试、遇到失败即停止所有测试、控制堆栈跟踪、控制日志输出,等等。
.
第2章将使用pip在本地安装Tasks项目,学习在Python项目中如何组织测试目录,这样才能针对实际项目编写测试用例。这一章的所有示例都依赖外部程序,包括数据库写入。
.
第2章的重点是测试函数,你将学习在pytest中高效使用断言语句。这一章还会讲解marker标记功能的用法,marker标记可以将测试进行归类或分组,方便一起运行,也可以将某些测试标记为skip(跳过不执行),marker标记还可以告诉pytest我们知道某些测试是一定会失败的。如果希望运行指定的测试子集,除了使用marker,还可以将测试代码组织成测试目录、测试模块、测试类,然后运行。
.
并非所有的测试代码都要放到测试函数中。第3章介绍如何将测试数据、启动逻辑、销毁逻辑放入fixture(pytest定义的一种测试脚手架)。设置系统(或子系统、系统单元)是软件测试的重要环节,第3章将介绍用一个简单的fixture完成这方面的工作(包括对数据库进行初始化,写入数据以备测试之用)。Fixture模块的功能非常强大,你可以利用它简化测试代码,从而提高代码的可读性和可维护性。Fixture像测试函数一样,也有参数。利用参数,你只需要编写一份代码,就可以针对TinyDB和MongoDB(或其他Tasks项目支持的数据库)开展测试。
.
第4章介绍pytest内置的fixture以满足测试中常见的一些需求,包括生成和销毁临时目录、截取输出流(通过日志判定结果)、使用monkey patch、检查是否发出警告,等等。
.
第5章讲解如何在pytest中添加命令行选项,如何改进打印输出,如何打包分发自己编写的插件,如何共享定制化的pytest(包括fixture)。这一章开发的插件可以改善Tasks项目测试失败时的输出呈现方式。你还将学习测试自己的测试插件(元测试)。读完这一章,想必你已经等不及编写自己的插件了。附录C收集了一些热门的社区插件,可供参考。
.
第6章讲解通过pytest.ini文件修改默认配置,自定义pytest的运行方式。pytest.ini文件可以存放某些命令选项,从而减少你重复输入命令的次数;利用它还可以指定pytest忽略某些测试目录,或者指定pytest的最低版本,等等。使用tox.ini和setup.cfg文件也可以实现同样的功能。
.
第7章(最后一章)介绍pytest与其他工具的结合使用。我们将借助tox让Tasks项目在多个Python版本上运行;学习如何测试Tasks项目的CLI部分,而不必mock系统的其余部分;借助coverage.py检查Tasks项目代码块的测试覆盖情况;通过Jenkins发起测试并实时显示结果。最后,还会学习如何让pytest运行基于unittest的测试用例,以及把pytest的fixture共享给unittest的测试用例使用。