pytest-跳过用例与标记失败

跳过用例

pytest中有两种跳过:

  1. pytest.mark.skip(reason=“无条件跳过”)
  2. pytest.mark.skipif(condition=表达式, reason=“跳过原因”),当表达式为True的时候,才触发跳过。
import pytest


@pytest.mark.skip(reason='无条件跳过用例')
class TestCaseLogin:

    def test_login_01(self):
        print('test case -01')
        assert 1
    def test_login_02(self):
        print('test case -02')
        assert 1

class TestCaseReg:
    @pytest.mark.skipif(1<2, reason="有条件跳过")
    def test_reg_01(self):
        print('test case -01')
        assert 1

    @pytest.mark.skipif(1 == 2, reason="有条件跳过")
    def test_reg_02(self):
        print('test case -02')
        assert 1

标记失败

我们预计某个接口,会执行失败,那么我们就对测试该接口用例标记一下。

Pytest 使用 pytest.mark.xfail实现预见错误功能::

xfail(condiition, reason, [raises=None, run=True, strict=False])

需要掌握的必传参数的是:

  • condition,预期失败的条件,当条件为真的时候(触发该标记),预期失败。当条件为假的时候,标记不会被触发。
  • reason,失败的原因。
  • strict
    • strict:True时,我们预期某个接口是失败的,但实际的断言结果却成功了, 那么,这个断言成功的结果,跟我们预期的失败是冲突的,所以,pytest将该接口标记为错误FAILED
    • strict:False时,我们预期某个接口是失败的,但实际的断言结果却成功了, 那么,这个断言成功的结果,跟我们预期的失败是冲突的,但是我们不管,所以,pytest将该接口标记为XPASS

那么关于预期失败的几种情况需要了解一下:

  • 预期失败,但实际结果却执行成功。在输出中用XPASS
  • 预期失败,实际结果也执行执行失败。在输出中用XFAIL

你可能感兴趣的:(pytest-跳过用例与标记失败)