Pytest(1)安装与入门[通俗易懂]

Pytest(1)安装与入门[通俗易懂]pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

pytest介绍

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它具有如下特点:

  1. 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
  2. 能够支持简单的单元测试和复杂的功能测试
  3. 支持参数化
  4. 执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
  5. 支持重复执行(rerun)失败的 case
  6. 支持运行由 nose, unittest 编写的测试 case
  7. 可生成 html 报告
  8. 方便的和持续集成工具 jenkins 集成
  9. 可支持执行部分用例
  10. 具有很多第三方插件,并且可以自定义扩展
     

安装pytest

一般接触一个新的框架,个人推荐使用virtualenvwrapper这个虚拟环境,使得环境独立
有关virtualenvwrapper的安装与使用后续再出文章,这里可自行百度

终端运行

(pytest_env) ➜  ~ pip3 install pytest

查看版本

(pytest_env) ➜  ~ pytest --version             

 

快速开始

# test_sample.py 的内容 
def func(x):
  return x + 1


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


class TestClass(object):
  def test_one(self):
    x = "this"
    assert 'h' in x

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

然后进入当前目录,执行命令pytest

> pytest

============================================= test session starts =============================================
platform darwin -- Python 3.7.6, pytest-6.2.1, py-1.10.0, pluggy-0.13.0
rootdir: /Users/jkc/PycharmProjects/pytestDoc
plugins: allure-pytest-2.8.6
collected 3 items                                                                                             

test_example.py F.F                                                                                     [100%]

================================================== FAILURES ===================================================
_________________________________________________ test_answer _________________________________________________

    def test_answer():
>     assert func(3) == 5
E     assert 4 == 5
E      +  where 4 = func(3)

test_example.py:16: AssertionError
_____________________________________________ TestClass.test_two ______________________________________________

self = <test_example.TestClass object at 0x7fe3e6ff7990>

    def test_two(self):
      x = "hello"
>     assert hasattr(x, 'check')
E     AssertionError: assert False
E      +  where False = hasattr('hello', 'check')

test_example.py:26: AssertionError
=========================================== short test summary info ===========================================
FAILED test_example.py::test_answer - assert 4 == 5
FAILED test_example.py::TestClass::test_two - AssertionError: assert False
========================================= 2 failed, 1 passed in 0.04s =========================================

 

知识点

  • 如果只执行 pytest ,会查找当前目录及其子目录下以test__*.py*_test.py 文件,找到文件后,在文件中找到以 test 开头函数或者Test开头的类并执行(当然,后续也可以自定义规则)
  • 如果只想执行某个文件,可以pytest start.py
  • 加上-q,就是显示简单的结果:pytest -q start.py

 

Pytest用例的设计原则

用Pytest写用例时候,一定要按照下面的规则去写,否则不符合规则的测试用例是不会执行的

  • 文件名以 test_*.py 文件和*_test.py
  • test_ 开头的函数
  • Test开头的类,不能包含__init__方法
  • 以 test_ 开头的类里面的方法
  • 所有的包 pakege 必项要有__init__.py 文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165653.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月29日 下午11:16
下一篇 2022年7月29日 下午11:36


相关推荐

  • 开启MySQL的binlog日志

    开启MySQL的binlog日志binlog 就是 binarylog 二进制日志文件 这个文件记录了 mysql 所有的 dml 操作 通过 binlog 日志我们可以做数据恢复 做主住复制和主从复制等等 对于开发者可能对 binlog 并不怎么关注 但是对于运维或者架构人员来讲是非常重要的 如何开启 mysql 的 binlog 日志呢 在 my inf 主配置文件中直接添加三行 log bin ONlog bin basenam

    2026年3月20日
    2
  • JUnit学习笔记

    JUnit学习笔记

    2021年9月15日
    47
  • 高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)

    高校校园网建设方案【含网络拓扑图+拓扑结构图+配置命令】(详细版)xxx大学xxx校区网络整体规划设计方案完成日期:2017年1月4日目录一、项目综述…11.1学校概况…11.1.1.11.2建设目标…11.2.1概述…11.2.2具体目标…11.3建设原则…11.3.1概述…11.3.2具体原则…2二、需求分析…32….

    2025年7月7日
    7
  • [机器学习]回归–Support Vector Regression(SVR)

    [机器学习]回归–Support Vector Regression(SVR)SVM 分类 就是找到一个平面 让两个分类集合的支持向量或者所有的数据 LSSVM 离分类平面最远 SVR 回归 就是找到一个回归平面 让一个集合的所有数据到该平面的距离最近 SVR 是支持向量回归 supportvecto 的英文缩写 是支持向量机 SVM 的重要的应用分支 传统回归方法当且仅当回归 f x 完全等于 y 时才认为预测正确 如线性回归中常用 f x

    2026年3月26日
    2
  • 如何提高memcache的缓存命中率

    如何提高memcache的缓存命中率

    2022年2月13日
    57
  • CAN报文解析—案例

    CAN报文解析—案例1 CAN 报文定义 CAN 报文是指发送单元向接受单元传送数据的帧 我们通常所说的 CAN 报文是指在 CAN 线 内部 CAN 整车 CAN 充电 CAN 上利用 ECU 和 CAN 卡接收到的十六进制报文 2 CAN 协议中 CAN 报文种类报文传输过程中有 数据帧 远程帧 错误帧 过载帧和帧间隔 3 CAN 报文的组成通常接收到的 CAN 报文由很多部分 图 1 组成 解析报文时用到的主要是帧 ID 和数据两部分 3 1 帧 ID 的组成接收到的十六进制的 ID 实际上是由 29 位标识符转换而来 目前大多数的通信协议中都直接给出

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号