pytest实际编码中特殊问题的解决

1.一个用例中想要写多个断言

现状:如果用assert的话,第一个assert失败后,后面的代码就不执行了

优化:想要前一个断言失败后后续断言继续执行的话,需要安装插件 pip install pytest-assume

代码实例:后续补充

2.测试用例的执行顺序

现状:文件名称 按 ASCII 码排序;文件内容,按代码先后顺序排序

优化:想要自己控制测试用例的执行顺序,需要安装插件 pip install pytest-ordering

代码实例:

import pytest

@pytest.mark.dependency()
def test_01(test):
    assert False

@pytest.mark.dependency(depends=["test_01"])
def test_02(test):
    print("执行测试2")

3.用例间的依赖问题

现状:如增删改类型的测试用例,如果增加失败了,那么继续执行删改,则必然是失败的

优化:想要增测试用例执行成功后才去执行删改的测试用例,如果增失败则删改的测试用例不执行,需要安装插件 pip install pytest-dependency,使用该插件可以标记一个test作为其他test的依赖,当依赖项执行失败时,那些依赖它的test将会被跳过。

4.用例间参数传入问题

def test_b():
globals()["a"] = 1
assert True


def test_a():
print("执行测试2")
print(globals()["a"])

 5.断言中字符串多双引号

现状:

解决办法:代码按如下修改即可

 actual = res['data'].encode("utf-8").decode("unicode_escape")
assert actual.strip('"') == expected
原文地址:https://www.cnblogs.com/wang-mengmeng/p/12024005.html