Pytest运行及其控制台输出信息

Pytest是一个流行的Python测试框架,它可以轻松地编写简单和复杂的测试,提供了丰富的断言、插件机制以及丰富的控制台输出信息,可以有效地将测试结果以易懂的方式显示给用户。以下是Pytest运行及其控制台输出信息的完整攻略:

安装Pytest

要使用Pytest,需要先安装它。可以使用以下命令来安装:

pip install pytest

编写测试脚本

在写测试脚本之前,需要先安装被测代码所需的依赖项。假设需要测试的代码在一个名为“example”的文件夹中,可以使用以下命令来安装其依赖项:

pip install -r example/requirements.txt

然后,编写test_.py形式的测试脚本,其中表示任何名称。在测试脚本中,使用Pytest提供的模块级别的fixture和assert语句来编写测试用例。测试脚本中所有以test_开头的函数都会被Pytest识别为测试用例。

下面是一个测试样例test_sample.py:

def func(x):
    return x + 1

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

这个测试用例是错误的,所以在运行这个测试用例之前,需要解决错误。

运行测试脚本

使用以下命令运行测试脚本:

pytest

在测试脚本所在的目录中,执行此命令将自动发现和运行测试脚本。如果测试用例预期的结果与实际结果不同,则测试用例会失败。

控制台输出信息

Pytest提供了丰富的控制台输出信息,用于向用户显示测试结果的详细信息,帮助用户快速识别错误并调试问题。

以下是Pytest的一些控制台输出信息的解释:

  • 以“.”表示测试用例已成功地通过测试;
  • 以“F”表示测试用例已经失败;
  • 以“x”表示测试用例被框架忽略,通常是由于fixture未被正确处理或者没有传递测试参数;
  • 以“s”表示测试用例在执行时发生了异常;
  • 显示每个测试用例的名称以及关于该用例的详细信息和错误信息;

示例1

以下是test_sample.py测试脚本在控制台输出信息:

pytest test_sample.py 
====================================== test session starts =======================================
platform win32 -- Python 3.6.8, pytest-6.0.0, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\Administrator\PycharmProjects\pytest_test
collected 1 item                                                                                    

test_sample.py F                                                                                 [100%]

============================================ FAILURES ============================================
_________________________________________ test_answer _________________________________________

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

test_sample.py:5: AssertionError
=================================== short test summary info ===================================
FAILED test_sample.py::test_answer - assert 4 == 5
===================================== 1 failed in 0.08s =====================================

可以看到,测试脚本test_sample.py包含了一个测试用例test_answer()。这个测试用例包含了一个断言,但是断言没有通过。在控制台输出信息中,以“F”表示该测试用例已经失败,并显示了详细的错误信息。在错误信息中,可以看到断言检查的返回值(4)和期望值(5)。

示例2

可以使用以下命令来获取更多Pytest控制台输出信息:

pytest -v

以下是test_sample.py测试脚本在控制台输出信息:

pytest -v test_sample.py
====================================== test session starts =======================================
platform win32 -- Python 3.6.8, pytest-6.0.0, py-1.9.0, pluggy-0.13.1 -- c:\python\python.exe
cachedir: .pytest_cache
rootdir: C:\Users\Administrator\PycharmProjects\pytest_test
collected 1 item                                                                                    

test_sample.py::test_answer FAILED                                                            [100%]

============================================ FAILURES ============================================
_________________________________________ test_answer _________________________________________

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

test_sample.py:5: AssertionError
------------------------------------- Captured stdout setup -------------------------------------
WARNING: ExampleFixture not found in the current path
Running a fixture
------------------------------------- Captured stdout call -------------------------------------
print some details
------------------------------------- Captured stdout teardown -------------------------------------
fixture has shut down

=================================== short test summary info ===================================
FAILED test_sample.py::test_answer - assert 4 == 5
===================================== 1 failed in 0.05s =====================================

可以看到,使用“-v”命令将显示更多的控制台输出信息。此时,可以看到整个测试生命周期中的详细信息,包括fixture的执行和测试用例的执行过程。在这里可以看到,有一个名为ExampleFixture的fixture未找到,并且testing_setup()函数的输出详细信息被捕获。这些信息有助于用户分析测试用例不通过的原因。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pytest运行及其控制台输出信息 - Python技术站

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

相关文章

  • python+tifffile之tiff文件读写方式

    那我就来讲解一下“Python+tifffile之tiff文件读写方式”的完整攻略。 标题 标题应该清楚明了,表明本文要讲解的内容。 介绍 首先,我们需要介绍一下tiff文件。Tiff(格式全称是Tagged Image File Format, 即带标签的图像文件格式),是一种灵活、多样、良好并且在许多领域使用十分广泛的高质量图像格式。Tiff 文件是由一…

    python 2023年6月5日
    00
  • Python语言规范之Pylint的详细用法

    Python语言规范之Pylint的详细用法 Pylint是一个Python代码静态分析工具,它可以检查代码中的语法错误、类型错误、未使用的变量和函数、代码规范性等问题。本文将详细介绍Pylint的安装和使用方法,并提供两个示例说明如何使用它来检查Python代码。 安装Pylint 使用pip命令可以轻松安装Pylint: pip install pyli…

    python 2023年5月14日
    00
  • Python执行时间的几种计算方法

    当我们在编写Python程序时,我们经常会需要计算代码的执行时间。在Python中,我们可以使用多种方式来计算程序的执行时间,下面详细介绍一些常用的方法。 方法一:使用time模块计算程序的执行时间 Python的time模块提供了一些函数来获取当前的时间和日期,我们可以利用它来计算Python程序的执行时间。下面是一个例子: import time sta…

    python 2023年5月30日
    00
  • Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现

    Python作为一门编程语言,有多种运行方式,其中包括命令行窗口、Python解释器、IDLE等。 命令行窗口 命令行窗口是最简单的运行Python程序的方式,它打开后,我们可以输入Python命令,直接执行Python代码。 示例 打开命令行窗口,输入以下代码: print("Hello, world!") 按回车键,我们会看到屏幕上输…

    python 2023年5月19日
    00
  • 如何在Pycharm中制作自己的爬虫代码模板

    下面是详细讲解如何在Pycharm中制作自己的爬虫代码模板的完整攻略: 在Pycharm中创建一个新的模板 打开Pycharm,选择File -> New Project,创建一个新的Python项目。然后在项目中创建一个新的Python文件,这将是我们将要制作模板的文件。 在该文件中编写代码,将我们想要在爬虫中复用的代码放入函数中,并以注释的方式在代…

    python 2023年5月14日
    00
  • Python3中编码与解码之Unicode与bytes的讲解

    Python3中编码与解码之Unicode与bytes的讲解 在Python3中,字符串类型分为两种:Unicode和bytes。Unicode是用来表示文本的字符集,而bytes则是用来表示二进制数据的序列。 Unicode Unicode是一种字符集,其中包含了世界上所有的字符,无论是中文、英文、日文、韩文等。Python3中字符串类型默认采用Unico…

    python 2023年5月13日
    00
  • 详解python的运算符与表达式

    详解Python的运算符与表达式 在Python编程语言中,运算符是用于执行各种操作的符号或标记。这些运算符对于对数值、字符串或者其他类型的对象进行各种操作都非常重要。同时,表达式是由运算符、操作数和函数调用组成的。在Python中,我们可以使用各种运算符和表达式完成各种任务。 算术运算符 Python中的算术运算符有加号(+)、减号(-)、乘号()、除号(…

    python 2023年6月3日
    00
  • 如何在Python中使用ORM操作MySQL数据库?

    以下是如何在Python中使用ORM操作MySQL数据库的完整使用攻略,包括导入模块、连接数据库、创建模型、执行查询操作等步骤。同时,提供了两个示例以便更好理解如何在Python中使用ORM操作MySQL数据库。 步骤1:导入模块 在Python中,我们需要导入相应的模块来使用ORM操作MySQL数据库。以下是导入SQLAlchemy模块的基本语法: fro…

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