[python] pytest

在写一个项目前, 可以先编写测试模块

测试模块中包含了一个个最小的功能

当每一个功能都完善正确时

再将这些功能转换成项目运行的功能

多个项目运行的功能就组成了一个模块

多个模块就组成了一个项目服务

[python] pytest_第1张图片

pytest 是一个 Python 测试框架,它提供了简单易用的语法和丰富的测试运行、收集和报告功能。在下面的代码中,我将向你展示如何使用 pytest 来编写和运行 Python 测试。

  1. 安装 pytest

首先,你需要安装 pytest。可以通过以下命令来安装:

pip install pytest

  1. 创建测试文件

pytest 会自动收集所有以 test_*.py*_test.py 命名的文件中定义的测试函数。

因此,我们可以创建一个 test_example.py 文件,并在其中编写一些测试函数。

def test_addition():
    assert sum([1, 2, 3]) == 6, "Should be 6"

def test_subtraction():
    assert abs(4 - 3) == 1, "Should be 1"

运行测试

接下来,我们可以使用以下命令来运行测试:

pytest

pytest 将搜索目录中的所有测试文件,并执行其中的所有测试函数。在上述例子中,你应该会看到类似于以下输出:

============================= test session starts =============================
platform darwin -- Python 3.8.2, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /path/to/your/project
collected 2 items                                                              

test_example.py ..                                                     [100%]

============================== 2 passed in 0.01s ==============================

在执行测试时,pytest 还会为每个测试函数生成一个报告,显示该测试是否通过或失败,并打印出相关的信息。

  1. 使用 pytest 的其他功能

pytest 提供了许多有用的功能,如参数化测试、测试生成器、测试固件等。

下面是一个例子,展示如何使用参数化测试来测试 factorial 函数:

import math
import pytest

@pytest.mark.parametrize("test_input, expected_output", [
    (0, 1),
    (1, 1),
    (2, 2),
    (3, 6),
    (4, 24),
    (5, 120),
])
def test_factorial(test_input, expected_output):
    assert math.factorial(test_input) == expected_output

在上述代码中,我们使用了 @pytest.mark.parametrize 装饰器来对 test_factorial 函数进行参数化,将输入值和预期输出值作为元组传递给该装饰器。

在运行测试时,pytest 将自动执行该函数的每个参数组合,并检查返回值是否符合预期输出值。

你可能感兴趣的:(python,python,pytest,开发语言)