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
  • 相关阅读:
    图2(矩环问题)
    图1(八连块)
    恶补一下DP+背包专题(刷刷水题)L2
    food(洛谷P4040 [AHOI2014/JSOI2014]宅男计划)
    滑动窗口
    Lawnmower(洛谷 CF115B)
    Price(洛谷P4109 [HEOI2015]定价)
    逆序对
    矩阵
    1.25日考试
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14109162.html
Copyright © 2011-2022 走看看