• [python] pytest


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

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

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

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

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

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

    在这里插入图片描述

    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"
    
    • 1
    • 2
    • 3
    • 4
    • 5

    运行测试

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

    pytest
    
    • 1

    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 ==============================
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在执行测试时,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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

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

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

  • 相关阅读:
    云呐|机房监控服务平台,机房监控服务平台有哪些
    android8.1- Show virtual keyboard 默认打开
    python之BeautifulSoup库
    Elasticsearch:使用 Streamlit、语义搜索和命名实体提取开发 Elastic Search 应用程序
    外贸邮件群发
    python异常处理学习分享
    【图像分割】基于模拟退火结合粒子群算法优化图像分割含Matlab代码
    华为HMS Core携手超图为三维GIS注入新动能
    SmartSoftHelp 7.0 最专业的c#代码生成器
    “搞事情”?OpenAl将于11月召开其首届开发者大会
  • 原文地址:https://blog.csdn.net/qq_44810930/article/details/133826289