有关skip的用法(请看:https://www.cnblogs.com/QiKa/p/13235129.html)
-------------------------------------------------------------------------------
1、使用方法:
事先知道会用例会执行失败,然后将会标记xfail,可以使用@pytest.mark.xfail(也可在用例内使用:pytest.xfail())
2、执行结果:
用例执行失败,结果展示为 小写 x, 如果运行成功,结果会展示为大写 X
3、用途:
比如遇到了一些 登录后才能执行其他用例的,但是当登录报错失败了,
那么这时候登陆后的这些用例就可以直接标记跳过执行 (不然都登录失败了,后面的用例执行也没意义了,都会失败报错)
例:
新建test_demo.py:
canshu = [{"user":"amdin", "psw":"123456"}]
@pytest.fixture(scope="module")
def login(request): #写一个login函数,并使用fixture装饰(这也相当设置了一个预置条件:登录)
user = request.param["user"]
psw = request.param["psw"]
print("登录账号:%s, 密码:%s" % (user, psw))
if psw:
return True
else:
return False
@pytest.mark.parametrize("login", canshu, indirect=True) #对以下的class Test_Login这个类使用参数化操作,将上面被装饰的login函数,当做参数传入用例(直接使用函数名即可)
class Test_Login():
def test_case1(self, login):
result = login
print("case1,登录结果:%s" % result)
assert result == True
def test_case2(self, login):
result = login
print("case2,登录结果:%s" % result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
def test_case3(self, login):
result = login
print("case3,登录结果:%s" %result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
if __name__ == "__main__":
pytest.main(["-v", "test_demo.py"])