pytest 运行参数

你可以通过-h或--help查看所有的命令,包含了所有插件的:

pytest --version   # 显示 pytest 的版本
pytest -h | --help

1. 查找用例
模块或目录

pytest 除了参数以外,在 pytest 后面没有跟任何参数的字符串都会认为是文件或者目录,会去这些指定的目录或文件中查找用例。

pytest tests test_login.py ../flow/test_flow.py

    这里 pytest 会去查找当前目录下的 tests 子目录,当前目录下的test_login.py,上级目录下的 flow 目录中的 test_flow.py。会找到所有这些目录或文件中符合条件的测试用例。你可以使用下面的--collect-only来检验一下。

--collect-only

此参数展示当前 pytest 能找到的用例,也就是说直接根据当前参数配置,能找到的用例列表。用于检验运行的用例是否符合你的预期。

    注意,这里只是列出会运行的用例,但是不会实际运行。

-k 筛选用例

-k可以让你使用表达式来指定希望运行的测试用例。可以用 and,or,not 连接符,模糊匹配文件名、类名和函数名。

pytest -k "str or Add and not list" --collect-only   1

匹配名称包含 str 或者 Add 且 不包含 list 的文件、类、及函数。如果用上面的例子,这里就只会找到两个函数:

    注意这里有个坑,千万不要用单引号,一定要用双引号包裹表达式。

-m 标记

标记markers用于标记测试并分组,以便快速选中某些需要的用例并运行。比如我们在冒烟测试时运行其中某一部分用例,bvt 测试时运行另一部分用例。可以通过@pytest.mark.标记名来标记这些需要的用例,运行时用-m 标记就能快速选出这部分用例运行。

@pytest.mark.bvt  # => 给函数加上标记
def test_int():
    """测试整型"""
    a, b = 1, 2
    assert add(a, b) == 3

运行时:

pytest -m bvt

    标记名可以自己随意加,但是加上后会有警告信息。可以使用 pytest 的配置文件配置这些标记。在测试目录下新建一个pytest.ini,这是一个文本文件,并加入如下内容。

    [pytest]
    markers=smoke:冒烟测试用例
        bvt: bvt 测试用例
        online: 正式环境运行的用例

    关于配置文件pytest.ini后面开专门的文章来讲解

2. 控制运行过程

Pytest 自带的这些控制运行命令可能并不常用,而最常用的应该是由失败重试插件提供的遇到用例失败重试的命令。

    失败重试需要插件 pip install pytest-rerunfailures

pytest --reruns=3  # 用例失败重新运行3次

以下是 pytest 自带的运行控制命令:
-x, --exitfirst 遇到失败停止

正常情况下,一个用例失败后,会继续运行后续用例 ,直到所有用例运行完为止。-x 参数会让整个测试在遇到第一次失败就停止。这取决于你有没有这样的需要,一般来说可能用不上。
--maxfail=num 遇到多少次失败就停止

与上面-x一样,不过-x是遇到第一次失败就停止。而--maxfail可以指定遇到几个测试用例失败就停止。

pytest --maxfail=3   # 遇到三次用例失败就停止

-lf, --last-failed

当一个或多个用例失败后,定位到最后一个失败的用例重新运行,后续用例会停止运行。
-ff, --failed-first

与-lf查不多,失败后会定位最后一个失败的用例重新弄运行,但是会运行完剩余的用例。
结果展示
-s, --capture=method显示标准输出

默认情况下你在用例中写的print或者log输出,都不会在测试结果中展示。如果你想看到用例中的标准输出,那么需要加上-s参数。
-v, --verbose更详细的结果

使用-v会让输出结果更详细,不用的时候一个文件占一行,而用例之后一个用例占结果的一行。并且结果中的用例名称和结果都会展示,而不仅仅是一个.或字符。
-q, --quiet简略的结果

与-v相反,-q会输出更简化的信息。
-l, --showlocals显示变量

使用-l会展示运行过程中的全局变量和局部变量。
测试报告

默认情况下,pytest 只有 xml 格式的报告。通过--junit-xml=path可以输出 xml 格式的报告。结合 Jenkins 还是比较直观。

但是可能你需要更直观的 html 测试报告,那么需要使用插件pytest-html,你可以通过 pip install pytest-html安装 。

然后在命令中加上--html=path:

pytest --html=report.html   # 在当前目录生成名为report.html的测试报告
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值