pytest基本用法简介

下面是关于"pytest基本用法简介"的完整攻略。

一、什么是pytest

Pytest是一个功能强大的Python测试框架,其中所提供的主要特性包括自动化测试、可插拔性、测试时间短、支持参数化等。它可以扩展unittest测试框架的功能,同时还能够使用更加Python风格的语法实现测试用例的编写。Pytest是Python中非常受欢迎的测试框架之一,由于其易于使用和扩展性,因此它已经成为了开源项目中测试的首选框架之一。

二、安装pytest

通过pip工具安装pytest:

pip install pytest

安装完毕后,可以通过以下命令检查是否安装成功:

pytest --version

三、pytest的基本使用方法

一、测试函数

1.测试用例文件以test_开头 (以_test结尾的文件也会自动被检测到)。

2.测试函数以test_开头。

def test_success():
    assert 1 == 1

def test_fail():
    assert 1 == 2

运行以上测试用例:

pytest test_pytest.py

二、测试类

1.测试用例中包括测试类时,测试类以Test开头,并且不能带有 init 方法。

2.测试函数以test_开头。

class TestSuccessFail:
    def test_success(self):
        assert 1 == 1

    def test_fail(self):
        assert 1 == 2

运行以上测试用例:

pytest test_pytest.py -v

-v选项可以显示详细的测试结果。

四、pytest的fixture机制

Fixture机制是Pytest提供的重要功能之一,它可以用来提供测试数据和共享测试环境。提供Fixture的多种方式:

1.函数或方法的方式

@pytest.fixture()
def login():
    account = "jack"
    password = "123456"
    return (account, password)

def test_login(login):
    print(login)

其中@login装饰器将函数标记为一个Fixture,test_login这个测试函数将会接收到login这个Fixture。

2.作为参数传入测试函数

@pytest.fixture()
def login():
    account = "jack"
    password = "123456"
    return {"account": account, "password": password}

def test_login(login):
    print(login["account"], login["password"])

其中,login也是一个Fixture,作为参数传递给测试函数。

3.在conftest.py文件中,定义Fixture的全局共享

@pytest.fixture(scope='session')
def login():
    account = "jack"
    password = "123456"
    return {"account": account, "password": password}

五、pytest命令行选项

Pytest支持很多命令行选项,以下是一些常用的选项:

1.-v, --verbose 输出详细的测试结果。

2.-q, --quiet 简化测试结果,只输出失败的信息。

3.-k, --keyword=expression 执行指定的测试。可以使用and,or和not运算符,以及括号来组合多个关键字表达式。

4.-m, --markers 显示所有标记。

5.-x, --exitfirst 当遇到首个失败(或者错误)的测试时,直接退出。

6.-s, --capture=no 阻止Pytest捕获打印到标准输出(stdout)和标准错误(stderr)的消息。

7.--html=path 生成漂亮的HTML报告。

以上,就是Pytest基本用法的简单介绍,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytest基本用法简介 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python matplotlib 绘图 和 dpi对应关系详解

    下面是“python matplotlib 绘图 和 dpi对应关系详解”的完整攻略。 什么是dpi? DPI是dots per inch的缩写,意为每英寸点数,表示每英寸内有多少个像素点。在matplotlib中,dpi通常指的是一个图像的每英寸点数,控制着图片的分辨率。 dpi和图像质量的关系 dpi越高,图像质量越好,图像也会变得更加清晰。但是,同时也…

    python 2023年5月18日
    00
  • Python实现处理apiDoc转swagger的方法详解

    Python实现处理apiDoc转swagger的方法详解 在Web开发中,API文档是非常重要的一部分,它描述了API的功能、参数、返回值等信息,方便开发者使用和调试。在不同的开发团队中,可能会使用不同的API文档工具,如apiDoc、Swagger等。本文将详细讲解Python实现处理apiDoc转swagger的方法,包括使用Python解析apiDo…

    python 2023年5月15日
    00
  • Python基础之文件操作及光标移动详解

    Python基础之文件操作及光标移动详解 在Python中,文件操作是非常常见的操作之一。Python提供了多种文件操作函数方法,可以帮助我们读、写入、复制、移动、删除文件等。本文将详细介绍Python文件操作的基础知识,括文件打开、读写、关闭复制、移动、删除等操作。 文件打开 在Python中,我们可以使用open()函数打一个文件。open()函数的语法…

    python 2023年5月14日
    00
  • Python – 如何在没有特定文件的代码块中检查 PEP8 错误 [重复]

    【问题标题】:Python – How to check PEP8 errors in a chunk of code with no specific file [duplicate]Python – 如何在没有特定文件的代码块中检查 PEP8 错误 [重复] 【发布时间】:2023-04-04 04:14:01 【问题描述】: 我目前在一个电子学习平台上…

    Python开发 2023年4月6日
    00
  • python re – 在字符之前拆分字符串

    【问题标题】:python re – split a string before a characterpython re – 在字符之前拆分字符串 【发布时间】:2023-04-06 13:04:01 【问题描述】: 如何在字符前的位置拆分字符串? 在’a’之前分割一个字符串 输入:“fffagggahhh” 输出:[“fff”, “aggg”, “ahh…

    Python开发 2023年4月7日
    00
  • 详解SpringBoot 发布ApplicationEventPublisher和监听ApplicationEvent事件

    下面就是详解“详解SpringBoot 发布ApplicationEventPublisher和监听ApplicationEvent事件”的完整攻略。 SpringBoot中的ApplicationEventPublisher 在SpringBoot中,我们可以使用ApplicationEventPublisher来发布事件。ApplicationEvent…

    python 2023年6月13日
    00
  • python实现从字符串中找出字符1的位置以及个数的方法

    要从字符串中找出字符1的位置以及个数,可以使用Python内置的str类提供的有关串操作的方法、函数,下面为您详细介绍两种方法: 方法一:使用count()方法 步骤: 使用字符串的count()方法,统计字符1在字符串中出现的次数。 找出字符串中字符1所在的位置,使用字符串的find()方法,如果返回-1则说明没有找到。 下面是代码实现: s = ‘123…

    python 2023年6月5日
    00
  • python实现WebSocket服务端过程解析

    Python实现WebSocket服务端过程解析 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它可以在客户端和服务器之间建立实时通信,而无需使用轮询或长轮询。本文将详细讲解Python实现WebSocket服务端的过程,包括两个示例。 WebSocket协议 WebSocket协议是一种在单个TCP连接上进行全双工通信的协议。它可以在客户…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部