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

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


相关推荐

  • 《算法图解》-9动态规划 背包问题,行程最优化

    《算法图解》-9动态规划 背包问题,行程最优化本文属于《算法图解》系列。学习动态规划,这是一种解决棘手问题的方法,它将问题分成小问题,并先着手解决这些小问题。一背包问题背包问题,在可装物品有限的前提下,尽量装价值最大的物品,如果物品数量足够大,简单的暴力穷举法是不可行的O(2ⁿ),前一章介绍了《贪婪算法》就是解决如何找到近似解,这接近最优解,但可能不是最优解。如何找到最优解呢?就是动态规划算法。动态规划先解决子问题,…

    2022年7月26日
    13
  • 笔记本(无线网卡)配置虚拟机上网

    笔记本(无线网卡)配置虚拟机上网当我们安装了virtualbox或者VMware虚拟机,都会虚出一个虚拟网卡。如果我们使用的是网线上网,那么可以选择“网桥”的方式让虚拟机上网,这样可以保证虚拟机和主机之间互通,而且虚拟机也可以访问外网。这时,虚拟机可以使用dhcp也可以手工的方式指定ip。那么,如果笔记本使用的是无线网卡上网,那么就无法使用“网桥”的方式配置虚拟机上网了。这时,可以使用host-only的配置方式,同

    2022年5月19日
    44
  • python日常办公妙用_妙用itchat! python实现久坐提醒功能

    python日常办公妙用_妙用itchat! python实现久坐提醒功能本文实例为大家分享了python久坐提醒的具体实现代码,供大家参考,具体内容如下#!/usr/bin/envypython3#-*-coding:utf-8-*-importitchatimportdatetime,os,platform,timedeftimerfun(sched_time):flag=0whileTrue:now=datetime.datetime….

    2022年9月30日
    2
  • CentOs 7 安装图形界面「建议收藏」

    CentOs 7 安装图形界面「建议收藏」小编在虚拟机上安装好之后,发现没有图形界面,只有命令行,虽然平常工作中都是用命令,但是没有图形界面老感觉缺点啥,所以就安装一下图形界面在root环境下执行安装命令yumgroupinstall"GNOMEDesktop""GraphicalAdministrationTools"执行过程中结果出错了:Cannotfindavalidbaseurlforrepo…

    2022年5月25日
    34
  • vue使用富文本编辑器tynimce并实现图片上传_富文本编辑器有什么用

    vue使用富文本编辑器tynimce并实现图片上传_富文本编辑器有什么用vue-富文本编辑器Vue-Quill-Editor使用官网文档,可以参照文档进行使用https://www.kancloud.cn/liuwave/quill/1434140简单的使用:首先安装依赖:npminstallvue-quill-editor–save然后可以在全局挂载或者在单页面挂载单页面挂载示例:importVuefrom’vue’importVueQuillEditorfrom’vue-quill-editor’//requirestyles

    2022年10月14日
    1
  • Python骚操作 | 还原已撤回的微信消息

    Python骚操作 | 还原已撤回的微信消息

    2021年6月12日
    92

发表回复

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

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