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/166019.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python生成器详解_自动生成python代码

    python生成器详解_自动生成python代码生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。

    2022年7月31日
    54
  • gb50174-2017数据中心机房等级标准_计算机机房设计标准GB50174

    gb50174-2017数据中心机房等级标准_计算机机房设计标准GB501742.0.1数据中心datacenter为集中放置的电子信息设备提供运行环境的建筑场所,可以是一栋或几栋建筑物,也可以是一栋建筑物的一部分,包括主机房、辅助区、支持区和行政管理区等。2.0.2灾备数据中心businessrecoverydatacenter用于灾难发生时,接替生产系统运行,进行数据处理和支持关键业务功能继续运作的场所,包括限制区、普通区和专用区。2.0.3主机房c…

    2022年10月2日
    4
  • html设置背景图片透明度代码,css设置图片背景透明度[通俗易懂]

    html设置背景图片透明度代码,css设置图片背景透明度[通俗易懂]我们经常会使用到背景图片,但有时候需要把背景图片设置一个半透明的效果,那么就需要以下的CSS了。这是一个CSS滤镜达到的效果,应用十分广泛。.modbr{filter:alpha(opacity=80);-moz-opacity:0.8;width:auto!important;width:100%}注:代码应用的式CSS中的Alpha滤镜,这个滤镜可以设置目标元素的透明度。还可以通过指定坐标,从…

    2022年5月12日
    54
  • MySQL开启远程连接_invited

    MySQL开启远程连接_invited如果你想连接你的mysql的时候发生这个错误:ERROR1130:Host’192.168.1.3’isnotallowedtoconnecttothisMySQLserver1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改”mysql”数据库里的”user”

    2022年10月13日
    3
  • EVE-NG模拟器升级并添加H3C设备

    EVE-NG模拟器升级并添加H3C设备EVE-NG模拟器升级并添加H3C系列模板和镜像欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它…

    2022年5月23日
    224
  • Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]

    Python3 :PyCharm + Qt designer 学习 + 实例[通俗易懂]python3PyQt5pycharm环境搭建PyQt官网PyQt5简单介绍PyQt是由PhilThompson开发Qt库是目前最强大的库之一PyQt是一个创建GUI应用程序的工具包它是Python编程语言和Qt库的成功融合Qtdesigner可视化拖动生成界面,然后利用pycharm进行转换.py文件,再编写槽函数,实现进一步的功能,不…

    2025年5月31日
    3

发表回复

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

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