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
  • 相关阅读:
    《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)
    《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
    Django之REST framework源码分析
    PythonWEB框架之Tornado
    PythonWEB框架之Flask
    Android 外部存储权限分析
    Javaproject集成log4J 1.x
    [Python]通过websocket与jsclient通信
    基于am3358的lcd输出
    SAP 金税接口增强 BADI
  • 原文地址:https://www.cnblogs.com/eastonliu/p/14109162.html
Copyright © 2011-2022 走看看