前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件测试/测试开发/全日制|Pytest如何灵活地运行用例

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

原创
作者头像
霍格沃兹测试开发Muller老师
发布2024-01-11 18:31:33
1360
发布2024-01-11 18:31:33
举报

前言

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

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

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

代码语言:bash
复制
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

......

运行单个测试文件

代码语言:bash
复制
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 ========================================================================

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

代码语言:bash
复制
pytest <路径/通配符>

运行指定测试用例

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

代码语言:bash
复制
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 包含以下内容:

代码语言:python
复制
# test_example.py
def test_addition():
    assert 1 + 2 == 3

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

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

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

代码语言:bash
复制
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 ==============================

运行指定的测试用例:

代码语言:bash
复制
pytest -k "test_subtraction"

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

test_a.py::test_subtraction PASSED                                       [100%]

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

总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 运行多条测试用例/文件/包
  • 执行结果分析
  • 使用示例
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com