软件测试/测试开发/全日制|Pytest如何灵活地运行用例

简介: 软件测试/测试开发/全日制|Pytest如何灵活地运行用例

前言

Pytest能够满足我们对单元测试框架的许多要求,它简洁易用,同时提供了丰富的功能来进行测试用例的管理和执行。在本文中,我们将深入探讨如何使用 Pytest 运行多条测试用例、测试文件或测试包,并且指定运行特定的测试用例,并对执行结果进行分析。

运行多条测试用例/文件/包

Pytest 具备强大的测试集合管理功能,可以轻松地运行多条测试用例、测试文件或测试包。要运行整个包中的测试用例,只需在命令行中运行:

pytest <包名>

# 举例
pytest testcase2
-------------
结果如下:
pytest testcase2
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo, configfile: pytest.ini
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 4 items                                                                                                                                                   

testcase2\test_c.py 登录步骤
.注册步骤
R注册步骤
R注册步骤
F购物流程
.购物车流程
.

============================================================================ FAILURES ============================================================================= 
__________________________________________________________________________ test_register __________________________________________________________________________ 

    @pytest.mark.run(order=1)
    def test_register():
        """注册用例"""
        print("注册步骤")
>       assert False
E       assert False

......

运行单个测试文件

pytest <文件名>

# 举例

pytest testcase2/test_b.py
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo, configfile: pytest.ini
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 1 item

testcase2\test_b.py b
.

======================================================================== 1 passed in 0.03s ========================================================================

注:运行特定的测试模块或路径下的所有测试文件,可以使用通配符或者路径

pytest <路径/通配符>

运行指定测试用例

有时候,我们可能只需要运行特定的测试用例而不是全部。Pytest 提供 -k 参数来实现这个目的。可以使用-k 参数并提供用例名称或匹配模式来选择要运行的测试用例。比如:

pytest -k "test_method_name"

# 示例

pytest -k test_d
======================================================================= test session starts =======================================================================
platform win32 -- Python 3.7.7, pytest-7.2.2, pluggy-1.0.0
rootdir: C:\Users\89703\PycharmProjects\flask_demo\testcase1
plugins: anyio-3.6.2, base-url-2.0.0, rerunfailures-13.0
collected 4 items / 1 deselected / 3 selected                                                                                                                      

test_a.py .                                                                                                                                                  [ 33%]
test_demo01.py .                                                                                                                                             [ 66%] 
test_demo03.py .                                                                                                                                             [100%] 

================================================================= 3 passed, 1 deselected in 0.04s =================================================================

执行结果分析

Pytest 提供了丰富的输出信息来展示测试执行的结果。当测试运行结束后,它会展示每个测试用例的状态(通过、失败、跳过等)。如果有测试失败,Pytest 会显示失败的具体信息,包括断言失败的位置和相关的数据。此外,Pytest 还能生成详细的报告,以便更好地分析测试结果。

使用示例

假设有一个简单的测试文件 test_example.py 包含以下内容:

# test_example.py
def test_addition():
    assert 1 + 2 == 3

def test_subtraction():
    assert 5 - 2 == 3

def test_multiplication():
    assert 2 * 3 == 6

运行整个文件并查看结果:

pytest test_example.py

----------------
============================= test session starts =============================
collecting ... collected 3 items

test_a.py::test_addition PASSED                                          [ 33%]
test_a.py::test_subtraction PASSED                                       [ 66%]
test_a.py::test_multiplication PASSED                                    [100%]

============================== 3 passed in 0.03s ==============================

运行指定的测试用例:

pytest -k "test_subtraction"

-----------------------
============================= test session starts =============================
collecting ... collected 1 item

test_a.py::test_subtraction PASSED                                       [100%]

============================== 1 passed in 0.02s ==============================

总结

Pytest 提供了便捷而灵活的方法来管理和运行测试用例,无论是整个包、单个文件还是特定的测试用例。执行结果的详细信息可以帮助我们快速定位并解决代码中的问题。希望本文能够帮到大家!

相关文章
|
2月前
|
测试技术
包含用例执行时间的测试报告代码
包含用例执行时间的测试报告代码
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率与质量:AI驱动的自动化测试策略
【2月更文挑战第19天】 在快速迭代的软件发展环境中,传统的手动测试方法已无法满足高效率和高质量的要求。本文探讨了人工智能(AI)技术如何革新现有的软件测试流程,通过引入AI驱动的自动化测试策略,旨在提高测试覆盖率,减少人为错误,优化资源分配,并缩短产品上市时间。我们将分析AI在识别潜在缺陷、生成测试用例、执行测试以及结果分析中的应用,并讨论实施这些策略时可能遇到的挑战和限制。
152 3
|
5天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
19 0
|
22天前
|
jenkins 测试技术 持续交付
软件测试|docker搭建Jenkins+Python+allure自动化测试环境
通过以上步骤,你可以在Docker中搭建起Jenkins自动化测试环境,实现Python测试的自动化执行和Allure报告生成。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
44 6
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
提升软件测试效率:AI驱动的自动化测试策略
【2月更文挑战第30天】随着人工智能(AI)在软件开发周期中的日益普及,其在提高软件测试效率方面的潜力正受到越来越多的关注。本文探讨了如何通过集成AI技术来优化自动化测试流程,从而减少重复工作、提高错误检测率和加快反馈速度。我们将分析当前AI在自动化测试中的应用,并提出一系列策略以利用AI改进测试案例生成、执行和维护过程。
85 0
|
1月前
|
测试技术
模型驱动测试引领测试开发新风向
模型驱动测试引领测试开发新风向
19 3
|
2月前
|
关系型数据库 MySQL 测试技术
【软件测试】 初识软件测试
【软件测试】 初识软件测试
|
2月前
|
测试技术 API Python
Python自动化测试:unittest与pytest的实战技巧
Python自动化测试:unittest与pytest的实战技巧
|
2月前
|
人工智能 前端开发 Java
软件测试/人工智能|熟练使用web控件定位技巧,提升测试工作效率!
软件测试/人工智能|熟练使用web控件定位技巧,提升测试工作效率!
197 1
|
2月前
|
Java 测试技术 Maven
单元测试添加运行参数的maven插件
单元测试添加运行参数的maven插件
20 0

热门文章

最新文章