pytest - Getting Start

这篇具有很好参考价值的文章主要介绍了pytest - Getting Start。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

项目开发中有很多的功能,通常开发人员需要对自己编写的代码进行自测,除了借助postman等工具进行测试外,还需要编写单元测试对开发的代码进行测试,通过单元测试来判断代码是否能够实现需求,本文介绍的pytest模块是一个非常好用的框架,不仅支持简单的测试也支持应用中复杂的功能测试。

pytest简介

这里引用pytest官方文档中的内容:pytest is a mature full-featured Python testing tool that helps you write better programs.

Getting start

pytest安装

pytest的运行环境是:python3.6 3.7 3.8 3.9 pypy3.在命令行中运行下述命令安装pytest

pip install pytest

安装完成之后运行下述命令检查是否安装成功:

pytest --version
pytest 6.2.4

第一个测试

可以通过四行代码为一个函数创建简单的测试。

# test.py
def func(x):
    return x+1


def test_answer():
    assert func(5) == 7

下面就可以执行pytest命令来测试功能。

pytest - Getting Start

100%是指运行所有测试用例的整体进度,完成之后,pytest会显示一个失败报告,指出具体错误原因。pytest可以指定文件进行测试,更多的时候pytest会运行当前目录和子目录中的所有test_*.py或者*_test.py形式的文件。

在类中进行多个测试

如果编写了多个测试用例,可以将多个测试用例放在同一个类中,但是需要确保类型的前缀是Test,否则将会被pytest跳过。

class TestDemo:

    def test_one(self):
        x = 'this'
        assert 'h' in x

    def test_two(self):
        x = 'hello'
        assert hasattr(x, 'check')

下面是使用pytest执行测试的结果,在类中编写测试需要注意两点:第一,类名必须有Test前缀,第二,在使用类进行测试时不需要实例化对象,pytest会自动找到test_前缀的方法执行。

pytest - Getting Start

Usage and Invocations

Exit codes

不晓得有没有细心的小伙伴发现没有,在使用pycharm运行完成一段程序后,会显示Process finished with exit code 0,表示程序正常运行完毕了,在运行pytest时也会出现exit code,并且可能会出现大概6种不同的exit code

exit code 0:所有的测试都已经收集并且成功通过

exit code 1:收集并运行了测试,但是有些测试失败了

exit code 2:测试执行过程中被打断

exit code 3:执行测试时发生内部错误

exit code 4:pytest命令使用错误

exit code 5:没有收集测试

终止测试

pytest运行时可以通过命令控制在出现一个或者N个失败信息时停止继续测试。

pytest -x           # stop after first failure
pytest --maxfail=2  # stop after two failures

指定/选择测试用例

pytest支持多种多方运行和选择测试用例。

测试指定py文件pytest test_mod.py

测试指定目录pytest /usr/local/testing/

通过节点id指定测试:每个被收集的测试都会被分配一个唯一的nodeid,,由模块名、类名、函数名等,每个部分使用::分隔。

运行模块中的指定的测试用例:pytest test_mod.py::test_func
运行类中的某个测试方法:pytest test_mod.py::TestClass::test_method

pytest选项

-r选项可以用于在测试会话结束时显示更加剪短的测试摘要信息,在大型的测试用例中可以非常清晰的获取所有失败、跳过等信息。-r参数可以和下面其他选项结合使用,输出不同的结果信息。

f:失败的
E:错误的
s:跳过的
x:失败的
p:通过的

如仅查看失败和跳过的测试,可以执行:pytest -rfs文章来源地址https://www.toymoban.com/news/detail-462326.html

到了这里,关于pytest - Getting Start的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 项目开发代码分支管理

    项目开发流程系列 项目开发混淆从初识到理解 项目开发代码分支管理 博客创建时间:2022.08.27 博客更新时间:2022.08.28 以Android studio build=7.0.0,SDKVersion 31来分析讲解。如图文和网上其他资料不一致,可能是别的资料版本较低而已。 在团队开发中,当有多个需求版本进行并发

    2023年04月08日
    浏览(82)
  • JavaWeb项目开发步骤

    JavaWeb项目开发步骤 前言:跟着视频学习搭建实现smbms超市管理系统,学习到了很多关于项目实现的一些东西,这里关于javaWeb的smbms进行项目跟着做一遍后的感受,主要讲的是整体感观,记录学习以及发布分享 一、项目需求 1. 需要完成什么功能 定义实体类,编写入数据库my

    2024年02月06日
    浏览(40)
  • Spring+SpringMVC+MyBatis整合项目开发(配有项目,已开源)

    🍰 个人主页:__Aurora__ 🍞 如果文章有什么需要改进的地方还请各位大佬斧正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 🔥最近在学SSM框架,本文是根据b站【黑马程序员 ssm框架 2021 版】整理。 🔥视频链接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    浏览(54)
  • uniapp项目实战系列(2):新建项目,项目搭建,微信开发工具的配置

    ✨ 原创不易,还希望各位大佬支持一下! 👍 点赞,你的认可是我创作的动力! ⭐️ 收藏,你的青睐是我努力的方向! ✏️ 评论,你的意见是我进步的财富! 打开uniapp的开发工具(HBuilder X),点击左上角的文件》新建》项目 选择左侧栏的uniapp(一般默认打开就是),然

    2024年02月09日
    浏览(43)
  • Django项目开发快速入门

    现在cmd中使用命令安装Django框架 使用命令生成项目 使用命令生成应用 在项目的setting文件中注册 /DjStore/Djstore/setting.py /DjStore/news/models.py 执行命名,生成mode 生成对应的表结构 /Djstore/news/admin.py 启动项目 生成admin账号 网址:http://127.0.0.1:8000/admin/ 进行对比 /DjStore/news/view.py 注册

    2024年02月16日
    浏览(45)
  • 后端项目开发:集成日志

    SpringBoot 默认选择的是slf4j做日志门面,logback做日志实现。由于log4j有性能问题,不建议使用。 由于log4j2的表现性能更好,我们需要集成log4j2,同时排除旧的日志实现包。 添加log4j2.xml配置文件

    2024年02月11日
    浏览(42)
  • electron项目开发环境搭建

    由于最近需要做一款跨平台的桌面应用,所以选择使用electron来作为开发的框架,下面说一下如何搭建一个简单的electron项目: 一、准备工作 安装git:下载git | 官网 安装node:下载 | Node.js 中文网 安装npm/cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org  安装electron:cnpm i

    2024年02月13日
    浏览(42)
  • 理解项目开发(寺庙小程序)

    转载自:历经一年,开发一个寺庙小程序! (qq.com) 破防了!为方丈开发一款纪念小程序! (qq.com)   下面内容转载自:程序员5K为青岛啤酒节开发个点餐系统! (qq.com)   看一个人如何完成一个项目的开发 正常的商单开发,先和客户进行需求的沟通,然后根据用户的需求进行原

    2024年02月09日
    浏览(32)
  • 湖北Webgl项目开发笔记

    问题1:点击“截图记录”时,无法显示出图片? 答:未修改HBPRO-0.0.1-SNAPSHOT(2).jar,位于D:HBPROHBPRO-0.0.1-SNAPSHOT(2).jar

    2024年03月12日
    浏览(40)
  • 苍穹外卖项目开发指南:项目概述、环境搭建、Swagger接口文档生成

    详细介绍苍穹外卖项目的开发流程,包括软件开发整体介绍、项目概述、环境搭建、Swagger接口文档生成、Nginx反向代理和负载均衡配置等内容,帮助开发人员快速上手项目开发。

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包