写点什么

软件测试面试真题 | Pytest 的内置 fixture 有哪些?

作者:测试人
  • 2022-10-27
    北京
  • 本文字数:794 字

    阅读完需:约 3 分钟

获取更多面试真题

面试官问: 测试流程大概是什么?

考察点

  • pytest 的 fixture 是什么

  • pytest 的常用内置 fixture

技术点

  • pytest 的 fixture 的概念

  • pytest 的常用内置 fixture 清单

  • pytest 的常用内置 fixture 的使用方法

fixture 的概念

  • 是一种使用@pytest.fixture定义的函数

  • 通常在具体的测试函数之前或是之后运行

内置 fixture 清单

  • 查看 fixture :pytest --fixtures

cache -- ..._pytestcacheprovider.py:510    Return a cache object that can persist state between testing sessions.capsys -- ..._pytestcapture.py:878    Enable text capturing of writes to ``sys.stdout`` and ``sys.stderr``.capsysbinary -- ..._pytestcapture.py:895    Enable bytes capturing of writes to ``sys.stdout`` and ``sys.stderr``.......复制代码
复制代码

内置 fixture:request

  • request

def test_request_fixture(request):    print(f"发现的测试用例: {request.session.testscollected}")    print(f"失败的测试用例: {request.session.testsfailed}")复制代码
复制代码

内置 fixture:capsys

  • capsys

import sysdef test_capsys_fixture_stdout(capsys):    print("Hogwarts", end="")    captured = capsys.readouterr()    assert "Hogwarts" == captured.outdef test_capsys_fixture_stderr(capsys):    sys.stderr.write("ERROR")    captured = capsys.readouterr()    assert "ERROR" == captured.err复制代码
复制代码

内置 fixture:tempdir

  • tempdir

def test_tempdir_fixture(tmpdir):    print(f"临时目录: {tmpdir}")复制代码
复制代码

总结

  • pytest fixture 是一种使用@pytest.fixture定义的,通常在具体的测试函数之前或是之后运行的函数

  • 可以使用pytest --fixtures查看 pytest 的所有 fixture 清单

  • 常用的内置 fixture 有:

  • request:用来获取测试函数请求信息

    capsys:用来访问被捕获的系统输出

    tempdir:用来获取一个临时目录

获取更多面试真题

发布于: 刚刚阅读数: 4
用户头像

测试人

关注

还未添加个人签名 2022-08-29 加入

还未添加个人简介

评论

发布
暂无评论
软件测试面试真题 | Pytest 的内置 fixture 有哪些?_面试_测试人_InfoQ写作社区