Python测试框架pytest(14)
用例执行后的几种状态
用例执行完成后,每条用例都有自己的状态。
常见的状态:
1、PASSED
1、创建test_passed.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
def abc():
a = "123456"
return a
def test_case():
assert abc() == "123456"
2、运行结果:
测试通过
2、FAILED
示例一:
1、创建test_failed.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
def abc():
a = "123456"
return a
def test_case():
assert abc() == "12345"
2、运行结果:
test_case测试用例调用abc函数的返回值进行断言,断言失败。
示例二:
1、创建test_failed2.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
def abc():
a = "123456"
return a
def test_case():
raise NameError
assert abc() == "123456"
2、运行结果:
test_case用例执行时抛出异常。
3、ERROR
示例一:
1、创建test_error.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
import pytest
@pytest.fixture()
def abc():
print("获取用户名")
a = "AllTests"
assert a == "AllTests"
return a
def test_case(abcd):
assert abc == "AllTests"
2、运行结果:
test_case函数引用不存在的fixture(abcd)
示例二:
1、创建test_error2.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
import pytest
@pytest.fixture()
def abc():
print("获取用户名")
a = "AllTests"
assert a == "All-Tests"
return a
def test_case(abc):
assert abc == "AllTests"
2、运行结果:
fixture里面断言失败,所以fixture会报错。
test_case函数调用了错误的fixture,所以ERROR表示用例有问题。
4、XFAIL
1、创建test_xfail.py文件
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""
import pytest
# 断言装饰器
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_f():
1 / 0
2、运行结果:
代码有异常,且和raised的异常类匹配,所以是XFAIL(算测试通过的一种,表示符合期望捕捉到的异常),并不算FAILED
如果和raised的异常类不匹配,则是FAILED
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!