pytest学习和使用14-Pytest用例执行结果有哪几种状态?
  NHjqxS4aAIAZ 2023年11月02日 44 0

(14-Pytest用例执行结果有哪几种状态?)

1 用例执行状态

状态 说明
passed 测试通过
failed 断言失败
error 用例本身代码报错
xfail 预期失败,加了 @pytest.mark.xfail()

2 xfail示例

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/12/27 
# 文件名称:test_case_status.py
# 作用:用例的执行状态
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

# 断言装饰器
@pytest.mark.xfail(raises=ZeroDivisionError)
def test_f():
    1 / 0

if __name__ == '__main__':
    pytest.main(["-s", "test_case_status.py"])

test_case_status.py::test_f XFAIL       [100%]
@pytest.mark.xfail(raises=ZeroDivisionError)
    def test_f():
>       1 / 0
E       ZeroDivisionError: division by zero

test_case_status.py:14: ZeroDivisionError


============================= 1 xfailed in 0.07s ==============================

3 failed示例

# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/12/27 
# 文件名称:test_case_status.py
# 作用:用例的执行状态
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

# failed
@pytest.fixture()
def sum():
    add = 3 + 5
    assert add == 8
    return add
    
def test_case(sum):
    assert sum == 9


if __name__ == '__main__':
    pytest.main(["-s", "test_case_status.py"])

sum = 8

    def test_case(sum):
>       assert sum == 9
E       assert 8 == 9

test_case_status.py:24: AssertionError
=========================== short test summary info ===========================
FAILED test_case_status.py::test_case - assert 8 == 9
============================== 1 failed in 0.07s ==============================

4 error示例

  • 正常情况:
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/12/27 
# 文件名称:test_case_status.py
# 作用:用例的执行状态
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

@pytest.fixture()
def userinfo():
    name = "zhang"
    assert name == "zhang"
    return name

def test_case(userinfo):
    assert userinfo == "zhang"


if __name__ == '__main__':
    pytest.main(["-s", "test_case_status.py"])

test_case_status.py::test_case PASSED [100%]

============================== 1 passed in 0.02s ==============================
  • 我们把@pytest.fixture()去掉,就会error
# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2022/12/27 
# 文件名称:test_case_status.py
# 作用:用例的执行状态
# 博客:https://blog.csdn.net/NoamaNelson

import pytest

def userinfo():
    name = "zhang"
    assert name == "zhang"
    return name

def test_case(userinfo):
    assert userinfo == "zhang"


if __name__ == '__main__':
    pytest.main(["-s", "test_case_status.py"])

=================================== ERRORS ====================================
_________________________ ERROR at setup of test_case _________________________
file F:\pytest_study\test_case\test_g\test_case_status.py, line 31
  def test_case(userinfo):
E       fixture 'userinfo' not found
>       available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, cov, doctest_namespace, metadata, monkeypatch, no_cover, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory, worker_id
>       use 'pytest --fixtures [testpath]' for help on them.

F:\pytest_study\test_case\test_g\test_case_status.py:31
=========================== short test summary info ===========================
ERROR test_case_status.py::test_case
============================== 1 error in 0.03s ===============================
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
NHjqxS4aAIAZ
最新推荐 更多