• 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%无套路免费领取】

  • 相关阅读:
    Redis系列之什么是布隆过滤器?
    微服务框架 SpringCloud微服务架构 6 Nacos 配置管理 6.2 微服务配置拉取
    部分依赖图(Partial Dependence Plots)以及实战-疾病引起原因解释
    边缘计算系统逻辑架构:云、边、端协同,定义及关系
    DolphinScheduler 3.0安装及使用
    leetcode 264.丑数
    POJO>JavaBean
    [汇编语言实验]查看CPU和内存,用机器指令和汇编指令编程
    【NSString字符串以及NSArray数组的练习题 Objective-C语言】
    Ensembling Off-the-shelf Models for GAN Training(GAN模型迎来预训练时代,仅需1%的训练样本)
  • 原文地址:https://blog.csdn.net/weixin_47648853/article/details/134332578