• 编写pytest测试函数


    assert断言

      1.在判断异常后输出提示信息,方便检查原因
    def  f():
        return 4
    a = f()
    def test_01():
    
        assert a % 2 == 0, "判断 a 为偶数,当前 a 的值为:%s" % a
      注:一个函数中assert断言某一个执行失败后便不会执行该函数中后续断言,对于使用多个断言为assert只能在多个函数中分别执行
     

      2、预期异常

    def task():
        return (1/0)
    
    #  断言出现的异常是否为预期的,断言异常通常为断言异常的type和value值
    def test_zero_division_long():
        with pytest.raises(ZeroDivisionError) as excinfo:
            1/0 # 为判断异常的内容,可为某个函数task()
        # 断言异常类型 type
        assert excinfo.type == ZeroDivisionError
        # 断言异常 value 值
        assert "division by zero" in str(excinfo.value)

    二、测试函数标记marker

    marker: 自定义标记,可用于筛选冒烟测试等(发布必跑)

    一个函数可以有多个marker, 一个marker也可以标记多个函数

    带有相同标记的测试函数即使在不同文件中,也会被一起执行(执行目录下的不同文件)

    pytest -m "get and smoke"
    
    pytest -m "get and not smoke"

     三、跳过测试

    pytest除了使用自定义标记外,自身也内置了一些标记:skip,skipif,xfail

    对于标记为xfail,实际运行结果是xpass的测试,可在pytest配置(pytest.ini)中强制指定结果为fail

    【pytest】

    xfail_strict = true

    跳过:
    @pytest.mark.skip(reason='***')
    
    达到某个条件时跳过例:某个版本跳过
    @pytest.mark.skipif(***,reason='***')   
    
    #reason可写可不写
    
    pyest -v -rs(-v可看到哪些被执行,哪些被跳过, -rs可看到跳过的原因)
    
    预期失败
    @pytest.mark.xfail()
    执行后结果:
    xfaild:,预期会失败,实际也是失败了
    xpassed:预期失败,实际运行通过了

    四、运行测试子集

    1、运行单个目录tests下所有测试
    C:Usersviruser.v-desktopPycharmProjects	asks_proj>pytest ./tests
    
    
    2、单个测试文件、模块
    C:Usersviruser.v-desktopPycharmProjects	asks_proj>pytest ./tests/func
    C:Usersviruser.v-desktopPycharmProjects	asks_proj>pytest ./tests/func/test_add.py
    
    3、单个测试函数/类  ::符号+类名/函数名
    类下的某个函数: ::class::func 符号+类名+符号+函数名 C:Usersviruser.v
    -desktopPycharmProjects asks_proj>pytest ./tests/func/test_add.py::test_asdict

    4、用测试名划分集合
    -k,允许使用一个表达式(and、or、not)指定要运行的测试,该表达式可以匹配测试名或其子串
    例:运行函数名包含raise的: pytest -k raise -v
    例:运行函数名包含raise但不包含delete的: pytest -k "raise and not delete" -v

  • 相关阅读:
    MS SQL Server迁移至Azure SQL
    Aras Innovator 11 sp2 firefox客户端设置
    Aras Innovator 11 sp2 IE客户端设置
    Aras Innovator 11 sp2安装
    JDK Windows安装
    mocha测试es6问题
    jQuery中animate与scrollTop、offset().top实例
    AI下载步骤
    Visual Studio Code必备插件
    Visual Studio code快捷键
  • 原文地址:https://www.cnblogs.com/byy521/p/15141207.html
Copyright © 2020-2023  润新知