首页 > 其他分享 >9. Pytest标记预计失败的用例:xfail

9. Pytest标记预计失败的用例:xfail

时间:2023-01-17 10:34:32浏览次数:35  
标签:xfail pytest --- 用例 Pytest test 执行

一、前言

我们现在要学的pytest.xfail()和pytest.skip()有些相似,只不过他的含义是:将该用例标记成xfail失败,并且该用例中的后续代码不会执行

二、学习目标

1.@pytest.mark.xfail()使用例执行失败

2.pytest.xfail()用例执行过程中使用例执行失败

3.运行时忽略xfail标记

三、知识点

注:用例执行失败时(XFAIL:符合预期的失败)、用例执行成功时(XPASS:不符合预期的成功)

1.【@pytest.mark.xfail()

  • 语法:

    @pytest.mark.xfail(condition=None, reason=None, raises=None, run=True, strict=False)
    
  • 参数:

    • reason关键字参数,默认值为None

      可以指定一个字符串,表明标记用例的原因;

    • strict关键字参数,默认值为False

      当strict=False时,如果用例执行失败,结果标记为XFAIL,表示符合预期的失败;如果用例执行成功,结果标记为XPASS,表示不符合预期的成功;

      当strict=True时,如果用例执行成功,结果将标记为FAILED,而不再是XPASS了;

      我们也可以在pytest.ini文件中配置:

      [pytest]
      xfail_strict=true
      
    • raises关键字参数,默认值为None

      可以指定为一个异常类或者多个异常类的元组,表明我们期望用例上报指定的异常;

      如果用例的失败不是因为所期望的异常导致的,pytest将会把测试结果标记为FAILED;

    • run关键字参数,默认值为True:

      run=False时,pytest不会再执行测试用例,直接将结果标记为XFAIL

  • 代码示例:

    import pytest
    
    def test_01():
        print("---用例1执行---")
    
    class TestCase():
    
        @pytest.mark.xfail(2>1, reason="这是失败原因!")
        def test_02(self):
            print("---用例2执行---")
    
        def test_03(self):
            print("---用例3执行---")
    
  • 运行效果

    test-demo7.py::test_01 PASSED                                            [ 33%]---用例1执行---
    
    test-demo7.py::TestCase::test_02 XPASS                                   [ 66%]---用例2执行---
    
    test-demo7.py::TestCase::test_03 PASSED                                  [100%]---用例3执行---
    ======================== 2 passed, 1 xpassed in 0.02s =========================
    

2.【pytest.xfail()

  • 语法:

    #用例函数内使用
    pytest.xfail(reason="")
    
  • 代码示例:

    import pytest
    
    def test_01():
        print("---用例1执行---")
    
    class TestCase():
    
        def test_02(self):
            pytest.xfail(reason="这是失败原因!")
            print("---用例2执行---")
    
        def test_03(self):
            print("---用例3执行---")
    
  • 运行效果

    test-demo7.py::test_01 PASSED                                            [ 33%]---用例1执行---
    
    test-demo7.py::TestCase::test_02 XFAIL                                   [ 66%]
    self = <test-demo7.TestCase object at 0x000001B1203804E0>
    
        def test_02(self):
    >       pytest.xfail(reason="这是失败原因!")
    E       _pytest.outcomes.XFailed: 这是失败原因! #抛出了自定义原因
    
    test-demo7.py:11: XFailed
    
    test-demo7.py::TestCase::test_03 PASSED                                  [100%]---用例3执行---
    ======================== 2 passed, 1 xfailed in 0.03s =========================
    

3.【运行时忽略xfail标记】

我们可以通过命令行选项pytest --runxfail来去使能xfail标记,使这些用例变成正常执行的用例,仿佛没有被标记过一样:

同样,pytest.xfail()方法也将会失效;

标签:xfail,pytest,---,用例,Pytest,test,执行
From: https://www.cnblogs.com/ckxingchen/p/17057177.html

相关文章

  • 8. Pytest跳过某个测试用例:skip和skipif
    一、前言skip和skipif,看名字就是跳过测试的意思,主要用于不想执行的代码,标记后,标记的代码不执行。希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例......
  • 11. Pytest常用插件:pytest-ordering调整用例执行顺序
    一、前言在pytest中,测试用例的默认执行顺序是从上到下执行的,但是有时候我们会有这样的需求,就是打乱测试用例的执行顺序来达到某个测试效果,这时候就需要用到Pytest中的一个......
  • 10. Pytest设置用例标签:mark
    一、前言mark主要用来标记用例,通过不同的标记实现不同的运行策略。一个大项目自动化用例时,可以划分多个模块,也可以使用标记功能,标明哪些是模块1用例,哪些是模块2的,运行代码......
  • 13. Pytest常用插件:pytest-repeat重复运行用例
    一、前言上面我们介绍了当用例失败时的重复运行,其实我们在实际工作中还会遇到一种情况,我们就是单纯的想让某条用例重复运行指定的次数。平常在做功能测试的时候,经常会遇......
  • 12. Pytest常用插件: pytest-rerunfailures失败用例重跑
    一、前言测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题),然后执行接口case也因此偶发失败。比如同一个接口case跑五次,其中有两次失败,另外三次都是成功的,这种偶发性的......
  • 软件测试用例设计方法及设计规范
      第三章软件测试用例设计方法及设计规范1.测试用例的定义 测试用例(Testcase)是为了实施测试而向被测试的系统提供的一组合集 测试点测试场景 集合包括: 测试环境/......
  • gtest测试用例打印台内容重定向
    需求描述在使用gtest做测试时,有时候需要记录测试过程中,测试对象运行时打印在控制台的相关内容,并根据打印的内容做校验,判断用例是否通过。由于测试用例很多,我们希望能够......
  • PostgreSQL数据库FDW——读取parquet文件用例
    以下打开存储在S3上Parquetfile的代码来自于定义在parquet_s3_fdw_connection.cpp文件中parquetGetFileReader函数(该函数由DefaultParquetReader类的有参open函数调用)。其......
  • 可 UI自动化用例标准
    ui自动化测试自动化测试的目的是提高效率,所以在开始自动化测试之前一定要问自己以下三个问题,尤其第一个是很容易忽视的。 1,是否需要自动化测试对于是否需要的问题,时......
  • Selenium 测试用例编写
    ​​原文链接​​编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。编写测试用例的优势:开源,免费。支持多种浏览器IE,Firefox,Chrome,Safar......