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

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


相关推荐

  • Linux系统的内核态和用户态[通俗易懂]

    Linux系统的内核态和用户态[通俗易懂]一、 Unix/Linux的体系架构  如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供

    2022年9月17日
    0
  • java集合概念_java多线程

    java集合概念_java多线程一、概述HashMap可能是我们最经常用的Map接口的实现了。话不多说,我们先看看HashMap类的注释:基于哈希表的Map接口实现。这个实现提供了所有可选的映射操作,并允许空值和空键。(Has

    2022年8月16日
    5
  • Spring、SpringBoot和SpringCloud的关系

    Spring、SpringBoot和SpringCloud的关系1、SpringBoot是Spring的一套快速配置脚手架,可以基于SpringBoot快速开发单个微服务。2、SpringCloud是一个基于SpringBoot实现的云应用开发工具。3、SpringBoot专注于快速、方便集成的单个个体,SpringCloud是关注全局的服务治理框架。4、SpringBoot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就…

    2022年5月29日
    34
  • SpringBoot事务注解@Transactional

    SpringBoot事务注解@TransactionalSpringBoot提供了非常方便的事务操作,通过注解就可以实现事务的回滚,非常方便快捷,下面我们就说一下如何进行事务操作。1.事务说明在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式。编程式事务管理:编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。

    2022年4月27日
    107
  • Anaconda+PyQt5+PyCharm开发并生成.exe可执行文件[通俗易懂]

    Anaconda+PyQt5+PyCharm开发并生成.exe可执行文件[通俗易懂]一、安装Anaconda软件二、安装PyCharm软件三、安装PyQt5Anaconda软件自带PyQt,但是安装不完整,开发时可能会遇到问题。因此,最好自己重新完整安装一遍。1.打开AnacondaPrompt终端界面2.安装pyqt5输入以下命令安装:pipinstallpyqt5如果以上命令安装不成功的话使用镜像安装,执行命令:pipinsta…

    2022年8月28日
    0
  • python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄

    python文件句柄_Python 文件操作学习 就是这么简单!-文件句柄一、前言Python对文件的操作是相当简单的。二、文件操作函数的介绍Python通过open函数来打开文件,语法如下open(file,mode=‘r’,buffering=None,encoding=None,errors=None,newline=None,closefd=True)可以看到,除了第一个file参数是必须的,其它都是可选的。1、file:操作的文件2、mode:操…

    2022年10月18日
    1

发表回复

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

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