Pytest十一(标记失败xfail)


import pytest
canshu = [{"user":"amdin", "psw":"111"}]
@pytest.fixture(scope="module")
def login(request):
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) ##添加indirect=True参数是为了把login当成一个函数去执行,而不是一个参数
class Test_list():
def test_01(self, login):
'''用例1登录'''
result = login
print("用例1:%s" % result)
assert result == True
def test_02(self, login):
result = login
print("用例3,登录结果:%s" % result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
def test_03(self, login):
result = login
print("用例3,登录结果:%s" %result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
if __name__ == "__main__":
pytest.main(["-s", "test_36.py"])

示例2:被除数为0时置为失败:
import pytest
list1=[3,0,5,9]
list2=[2,0,3,4]
@pytest.fixture(scope="module")
def get_n1(request):
n1 = request.param
print("第一个数:%s" % n1)
return n1
@pytest.fixture(scope="module")
def get_n2(request):
n2 = request.param
print("第二个数:%s" % n2)
return n2
@pytest.mark.parametrize("get_n1", list1, indirect=True)
@pytest.mark.parametrize("get_n2", list2, indirect=True)
class Test_list():
def test_01(self,get_n2,get_n1):
if get_n2<=0:
pytest.xfail("被除数为0,用例错误")
result=get_n1/get_n2
print("除数是%d,被除数%d,结果:%.6f" ,get_n1,get_n2,result)
assert 1==1
if __name__ == "__main__":
pytest.main(["-s", "test_37.py"])


二、标记为xfail
import pytest
canshu = [{"user":"amdin", "psw":""}]
@pytest.fixture(scope="module")
def login(request): ##login函数从参数中取值
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) ##添加indirect=True参数是为了把login当成一个函数去执行,而不是一个参数
class Test_xx():
def test_01(self, login):
'''用例1登录'''
result = login
print("用例1:%s" % result)
assert result == True
def test_02(self, login):
result = login
print("用例3,登录结果:%s" % result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
def test_03(self, login):
result = login
print("用例3,登录结果:%s" %result)
if not result:
pytest.xfail("登录不成功, 标记为xfail")
assert 1 == 1
if __name__ == "__main__":
pytest.main(["-s", "test_39.py"])


用例1失败了,用例2和3没执行,直接标记为xfail了

浙公网安备 33010602011771号