pytest常用的基本断言方法

1、Pytest -断言、跳过及运行

在这里插入图片描述

 在这里插入图片描述

 2、mark中的skip(跳过)

在这里插入图片描述

3、mark中的xfail(失败)

在这里插入图片描述 

 pytest.xfail()
咱们已经掌握了若是跳过执行测试用例,其中有一种方法是在测试函数中用pytest.skip()方法。咱们如今要学的pytest.xfail()和pytest.skip()有些类似,只不过他的含义是:将该用例标记成xfail失败,而且该用例中的后续代码不会执行,在测试用例中调用pytes.xfail()方法,能够选择传入reason参数表示缘由

#test_Pytest.py文件
#coding=utf-8

import pytest

class Test_Pytest():

        def test_one(self,):
                print("----start------")
                pytest.xfail(reason='该功能还没有完成')
                print("test_one方法执行" )
                assert 1==1

        def test_two(self):
                print("test_two方法执行" )
                assert "o" in "love"

        def test_three(self):
                print("test_three方法执行" )
                assert 3-2==1

if __name__=="__main__":
    pytest.main(['-s','-r','test_Pytest.py','test_Pytest.py'])

运行结果以下图:咱们能够看到该用例中pytest.xfail()方法以前的代码运行了,以后的再也不运行;结果中有一天用例被标记为xfail

在这里插入图片描述

这个方法是咱们直接将用例标记为失败,那什么状况咱们会这么作呢?功能未完成、已知有问题。除此以外,就是用例的执行须要前置条件或操做,若是前置条件或操做失败,那么咱们就能够直接将该用例设为失败,也就是xfail。api

@pytest.mark.xfail
除了上面学习的pytest.xfail(),xfail还有一种使用方法。就是@pytest.mark.xfail标签,他的含义是指望测试用例是失败的,可是不会影响测试用例的的执行。若是测试用例执行失败的则结果是xfail(不会额外显示出错误信息);若是测试用例执行成功的则结果是xpass。在测试用例上加上@pytest.mark.xfail标签。

#test_Pytest.py文件
#coding=utf-8

import pytest

class Test_Pytest():

        @pytest.mark.xfail
        def test_one(self):
                print("test_one方法执行" )
                assert 1==2

        def test_two(self):
                print("test_two方法执行" )
                assert "o" in "love"

        def test_three(self):
                print("test_three方法执行" )
                assert 3-2==1

if __name__=="__main__":
    pytest.main(['-s','test_Pytest.py']) 

运行结果以下图:能够看到咱们标记的用例确实运行了;由于断言失败因此结果是xfailed,也没有像正常同样显示出错误用例及具体信息。

如果把断言改为正确的,再运行一次,结果以下图:尽管咱们的用例正常运行经过,可是仍被标记为xpassed,而不是passed

在这里插入图片描述

5、使用自定义标记mark只执行部分用例

在这里插入图片描述 

参考:Pytest和Allure测试框架-超详细版+实战 - 尚码园 

你可能感兴趣的:(测试用例)