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
  • 相关阅读:
    (8) MySQL主从复制架构使用方法
    (7) MySQL数据库备份详解
    (6) MySQL慢查询日志的使用
    解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题
    (5) 电商场景下的常见业务SQL处理
    (4) MySQL中EXPLAIN执行计划分析
    (3) MySQL分区表使用方法
    (2) 电商数据库表设计
    (1) Mysql高性能优化规范建议
    linux每日命令(39):lsof命令
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14109162.html
Copyright © 2011-2022 走看看