• pytestskip跳过测试用例


    前言:

      pytest.mark.skip 可以标记无法再某些平台上运行的测试功能,或者你希望失败的测试功能,skip意味着只有在满足某些条件时才希望测试通过,否则pytest应该跳过测试。常见示例实在非windows平台上跳过仅限windows的测试,或者跳过测试依赖于当前不可用的外部资源(如数据库)。

      xfail 的含义是:将该用例标记为xfail失败,并且该用例中的后续代码不会执行。

      @pytest.mark.xfail

      出来pytest.fail(),xfail还有一种使用方法。就是@pytest.mark.xfail标签,他的含义是:期望测试用例执行失败,但不会影响测试用例的执行。如果测试用例执行是失败的,则结果是xfail;如果测试用例执行成功,则结果是xpass。

    pytest计数并分别列出skip和xfail测试。未显示有关跳过/xfailed测试的详细信息,以免混乱输出。您可以使用-r 选项查看与 “short”字母对应的详细信息显示在测试进度中。

    skip:

    跳过测试函数的最简单方法是使用跳过装饰器标记它,可以传递一个可选的原因:

     跳过模块中的所有方法:

    在全局中使用 pytest.mark.skip()

    --skipif--:

    如果希望有条件的跳过某些内容,则可以使用skipif()代替。这是标记测试的示例在python3.6之前的解释器上运行时要跳过的函数。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    @pytest.mark.skipif((f()>4),reason="当f()大于4时执行跳过")
    def test_02():
        """
        断言b包含a
        :return:
        """
        a = "hello"
        b= "hello world"
        assert a in b,"判断b是否包含a,a= %s b = %s "

      如果skipif()中的条件为True时,则将跳过测试函数,具体的原因使用reason中出现的摘要

     在模块之间共享skipif标记,参考一下案例:skipif() 中必须要加条件和reason

    skip类或者模块:

    可以在类上使用skipif标记与其他任何标记的使用方法一样

    警告:强烈建议不要在使用继承的类上使用skipif. pytest中的一个已知错误标记可能会导致超类中的意外行为;

    如果多个skipif()装饰器应用于测试函数,则如果任何跳过条件为真,则将跳过它。

    skip 文件或目录:

      有时候可能需要跳过整个文件或目录,例如,如果测试依赖于特定的Python的版本功能或者包含不希望运行的代码。在这种情况下,需要排除文件和目录。

    如何在不同情况下跳过模块中的测试

    1、无条件的跳过模块中的所有测试:

    pytestmark = pytest.mark.skip("all tests will wip")

    2、根据某些条件跳过模块中的所以偶测试

    pytestmark = pytest.mark.skipif((sys.platform=='win32"),reason = 'test for linux only')

    3、如果缺少某些导入,则跳过模块中的所有测试

    pexpect = pytest.importskip()

     ----------------------------------------------------------------------------------------------------------

    转载于:https://www.cnblogs.com/1050619969kong/p/15585002.html

    作者昵称:GalaxyStar

  • 相关阅读:
    MATLAB符号运算(2)
    ruby的字符串
    MATLAB符号运算(3)
    ruby的lambda
    MATLAB概率统计函数(2)
    ruby的迭代
    MATLAB优化问题(2)
    ruby的方法和block
    MATLAB优化问题(1)
    ruby的正则表达式操作(3)
  • 原文地址:https://www.cnblogs.com/yifengyu/p/16178022.html
Copyright © 2020-2023  润新知