zoukankan      html  css  js  c++  java
  • Pytest学习笔记(五) xfail标记预期失败的测试用例

    使用xfail标记希望的测试用例失败,会运行此测试用例,但是在报告中会将其列在“预期失败”(XFAIL)或“意外传递”(XPASS)部分,如下:

    import pytest
    
    
    @pytest.mark.xfail(reason="这个用例实际返回结果与预期不一致")
    def test_001():
        assert 1 == 2
    
    
    @pytest.mark.xfail(reason="这个用例实际返回结果与预期一致")
    def test_002():
        assert 8 == 8
    
    
    def test_003():
        assert 6 == 6

    在命令行中执行pytest -vrs,查看结果:

     还可以在测试用例中用xfail强制标识测试预期失败:

    def test_function():
        if not valid_config():
            pytest.xfail("failing configuration (but should work)")

     各参数含义:

    1、strict 参数设置为True, 如果出现xpass,测试用例的结果将视为失败

    如下:

    import pytest
    
    
    @pytest.mark.xfail(strict=True,reason="这个用例实际返回结果与预期不一致")
    def test_001():
        assert 1 == 2
    
    
    @pytest.mark.xfail(strict=True,reason="这个用例实际返回结果与预期一致")
    def test_002():
        assert 8 == 8
    
    
    def test_003():
        assert 6 == 6

    在命令行中执行pytest -vrs,查看结果:

     strict参数也可以配置到pytest.ini文件中

    [pytest]
    xfail_strict=true

    2、run参数,不运行xfail标记的用例,但是报告中会将其列在“预期失败”(XFAIL)部分

    如下:

    import pytest
    
    
    @pytest.mark.xfail(reason="这个用例实际返回结果与预期不一致")
    def test_001():
        assert 1 == 2
    
    
    @pytest.mark.xfail(run=False,reason="这个用例实际返回结果与预期一致")
    def test_002():
        print("此条用例不执行")
        assert 8 == 8
    
    
    def test_003():
        assert 6 == 6

    执行结果:

     3、--runxfail  忽略xfail

    命令行执行时指定--runxfail,会导致所有的xfail标识不生效。

    pytest  --runxfail
  • 相关阅读:
    Java基础_0205: 程序逻辑结构
    java基础_0204:运算符
    Centos 7 安装MySQL
    Maven 入门
    winx64 MySQL 5.7绿色版安装步骤
    hadoop环境搭建
    配置虚拟机 Linux 静态IP
    JDK开发环境搭建及环境变量配置
    设计模式之命令模式详解(故事版)
    设计模式之 外观模式详解(Service第三者插足,让action与dao分手)
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14109162.html
Copyright © 2011-2022 走看看