用例状态
2023-12-30 07:40:03
一、用例状态类型
用例执行完成后,每条用例都有自己的状态,常见的状态有:
- passed:测试通过。
- failed:断言失败。
- error:内部代码错误。(譬如:
fixture
不存在,fixture
里面有报错等。) - xfail:标记测试用例预期会失败的情况。(需要加
@pytest.mark.xfail()
。)
二、passed
passed 表示测试通过。
- 用例正常执行或断言通过:
import pytest
def test_case_01():
a = 1
# 断言通过。
assert 1 == a
if __name__ == '__main__':
pytest.main(["-s"])
# PASSED
三、failed
failed 表示测试失败。
- 断言失败导致:
import pytest
def test_case_01():
a = 1
# 断言不通过。
assert 2 == a
if __name__ == '__main__':
pytest.main(["-s"])
# FAILED
# E assert 2 == 1
# AssertionError
- 用例执行期间抛出异常导致:
import pytest
@pytest.fixture()
def query():
pass
# 调用异常的 fixture 。
def test_case_01(query):
print("===执行测试用例1===")
raise Exception
if __name__ == '__main__':
pytest.main(["-s"])
# FAILED
# 用例执行期间抛出异常。
四、error
error 表示内部代码错误。
- 调用了错误的 fixture:
import pytest
@pytest.fixture()
def query():
name = "jan"
# 断言不通过。
assert "rose" == name
return name
# 调用异常的 fixture 。
def test_case_01(query):
print("===执行测试用例1===")
if __name__ == '__main__':
pytest.main(["-s"])
# ERROR
# 因为用例调用的 fixture 内部发生了异常,所以导致 error。
五、xfail
xfail 表示标记测试用例预期会失败的情况(需要加
@pytest.mark.xfail
装饰器)。
- 预期会失败:
import pytest
"""
1.函数被使用 `@pytest.mark.xfail()` 进行标记。
2.意味着当运行这个测试用例时,即使断言失败,这个测试用例也将被标记为"xfail",而不是"failed"。
"""
@pytest.mark.xfail()
def test_case_01():
print("===执行测试用例1===")
assert 1 == 2
# 代码有异常,且和 raises 的异常类匹配,所以是 xfail 。
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_case_02():
print("===执行测试用例2===")
i = 1 / 0
if __name__ == '__main__':
pytest.main(["-s"])
# XFAIL ===执行测试用例1===
# XFAIL ===执行测试用例2===
六、结束语
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。
文章来源:https://blog.csdn.net/weixin_48776531/article/details/135301521
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!