zoukankan      html  css  js  c++  java
  • 内置fixture---tmpdir和tmpdir_factory

    tmpdir和tmpdir_factory

    内置的tmpdirtmpdir_factory负责在测试开始运行前创建临时文件或目录,并在测试结束后删除。单个测试使用tmpdir,多个测试使用tmpdir_factory
    tmpdir的作用范围是函数级别,tmpdir_factory的是会话级别 ,如果需要其他级别的,需要创建一个新的fixture。

    def test_tmpdir(tmpdir):
        a_file=tmpdir.join("a.txt")
        b_dir=tmpdir.mkdir("something")
        b_file=b_dir.join("b.txt") 
        a_file.write("aaa")
        b_file.write("bbb")
        assert a_file.read()=="aaa"  and b_file.read()=="bbb"
    

    pytestconfig

    内置的pytestconfig可以通过命令行参数,选项,配置文件,插件,运行目录等方式来控制pytest。它是request.config的快捷方式,被称为“pytest配置对象”

    def pytest_addoption(parser):  #pytest的hook函数pytest_addoption,可添加命令行选项
        parser.addoption("--myopt",action="store_true",help="some my option")
        parser.addoption("--foo",action="store",default="bar",help="foo:bar or baz")
    
    def test_option(pytestconfig):
        print(pytestconfig.gettoption('myopt'))
        print(pytestconfig.gettoption('foo'))
        print(pytestconfig.option.foo)
    # 一些例子
    def test_pytestconfig(pytestconfig):
        print(pytestconfig.args)
        print(pytestconfig.inifile)
        print(pytestconfig.invocation_dir)
        print(pytestconfig.rootdir)
        print(pytestconfig.getoption('showlocals'))
    

    使用cache

    cache用于测试会话传递给下一段会话
    --last-failed(仅运行上次未通过的)和--failed-first (之前未通过的首先运行)很好的展示cache的功能,看看cache是如何存储这些标识数据的。
    --cache-show可以显示cache存储的信息
    --clear-cache 运行前清空cache缓存

    def test_cache(cache):
        cache.get(key,default)
        cache.set(key,value)
    

    使用capsys

    允许使用代码读取stdout和stderr,capsys.redouterr() 也可以临时禁止抓取日志输出capsys.redouterr()
    pytest通常会抓取输出,仅当全部用例结束后,抓取到的日志才会显示出来。--s参数可以关闭这个功能,在测试运行期就把输出直接发送到stdout,但有时可能只需要部分信息,则可以用 capsys.disabled()临时让输出绕过默认的输出捕获机制
    capsys.redouterr()

    def test_disabled(capsys):
        with.capsys.disabled():
            print("aaaa")
        print("bbb")  # pytest -q 和 pytest -q -s的区别
    

    monkeypatch

    在运行期间对类或模块进行动态修改。常用于替换被测试代码的部分运行环境,或将输入依赖或输出依赖替换成更容易测试的对象或函数。测试结束后,无论结果是通过还是失败,代码都会复原(所有修改都会撤销)
    例如:修改环境变量monkey.setenv('HOME',tmpdir.mkdir('home'))

    努力努力努力
  • 相关阅读:
    spark on yarn模式下内存资源管理(笔记1)
    面试题10.3-变态跳台阶
    面试题10.2-青蛙跳
    面试题9-斐波那契数列
    面试题9-用两个栈来实现一个队列,完成队列的Push和Pop操作
    面试题6:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
    鸢尾花数据集-iris.data
    class之cls
    python 装饰器
    supervisor python开发的进程管理工具
  • 原文地址:https://www.cnblogs.com/wwtest/p/14132242.html
Copyright © 2011-2022 走看看