• Python 测试框架 Pytest 的入门


    pytest 简介

    pytest 是一个功能强大而易于使用的 Python 测试框架。它提供了简单的语法和灵活的功能,用于编写和组织测试代码。

    1、简单易用:pytest 的语法简洁明了,使得编写测试用例更加直观和易于理解。它使用 assert 语句来验证预期结果,让测试代码更加简洁易读。

    2、自动发现测试:pytest 能够自动发现并执行测试文件和测试函数。它遵循命名规则(以 “test_” 开头的文件和函数)来查找测试用例,无需手动指定。

    3、丰富的断言支持:pytest 提供了丰富的断言函数,用于比较、验证预期结果和实际结果是否一致。这使得编写断言更加简单和直观。

    4、夹具 (fixture):夹具是 pytest 的一个强大功能,用于在测试用例之前和之后执行一些准备和清理操作。夹具可以帮助创建模拟对象、设置测试环境、共享资源等。

    5、参数化测试:pytest 支持参数化测试,允许使用不同的输入参数运行同一个测试用例。这可以大大减少编写重复测试代码的工作量。

    6、插件系统:pytest 提供了丰富的插件生态系统,可以扩展其功能。可以使用插件来增强测试报告、生成覆盖率报告、集成其他测试工具等。

    7、与其他测试框架的兼容性:pytest 可以与其他流行的测试框架(例如 unittest)兼容,因此可以逐步迁移现有的测试代码到 pytest。

    pytest 安装

    安装 pytest首先,确保已经安装了 Python,并使用 pip 包管理器安装 pytest。

    打开终端并输入以下命令:

    pip install pytest

    验证安装结果:

    pytest --version

    pytest执行

    步骤 1:

    创建测试文件在项目文件夹中,创建一个以 “test_” 开头的 Python 文件,注意:测试文件名要符合test_*.py或*_test.py格式(例如 “test_calculator.py”)

    步骤 2: 

    编写测试用例在测试文件中,可以定义一个或多个测试函数,每个函数对应一个测试用例。​​​​​​

    # test_calculator.py
    def test_addition():    assert 2 + 2 == 4
    def test_subtraction():    assert 5 - 3 == 2
    def test_multiplication():    assert 3 * 4 == 12
    def test_division():    assert 10 / 2 == 5

    在每个测试函数中,使用关键字 assert 来判断预期结果与实际结果是否一致。如果断言失败,pytest 将显示错误信息,并将测试标记为失败。

    步骤 3: 

    运行测试在终端中,切换到项目文件夹,并运行以下命令来执行测试:

    pytest

    pytest 将自动发现并运行测试文件。将看到一份测试结果报告,其中包含每个测试用例的状态(通过、失败或跳过)以及详细的错误信息(如果有的话)。

    步骤 4: 

    使用命令行选项pytest 提供了许多命令行选项,以便可以根据需要自定义测试运行。以下是一些常用的选项:

    运行特定目录下的测试文件:

    pytest path/to/tests

    运行特定测试文件中的某个测试函数:

    pytest path/to/tests/test_module.py::test_function

    显示详细的打印输出:

    pytest -s

    生成 JUnit XML 报告:

    pytest --junitxml=path/to/report.xml

    以上只是 pytest 的一些基本用法。pytest 还具有更高级的功能,例如参数化测试、夹具 (fixture)、测试覆盖率等等。之后会进一步分享,点个赞给小编更多动力。

    如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

  • 相关阅读:
    数字森林:无人机航测技术在林业调查中的应用
    3、JSP——Servlet、IDEA创建Web项目、IDEA创建JSP页面
    【Graph Net学习】GNN/GCN代码实战
    数学建模算法与应用 数理统计
    戏说领域驱动设计(十六)——实体概念
    该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定
    ModelSim相关实用设置
    软件测试流程是什么?这题我不会啊
    力扣 886. 可能的二分法
    三、图片的几何变换
  • 原文地址:https://blog.csdn.net/weixin_47648853/article/details/134332578