前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python测试框架pytest(14)用例执行后的几种状态

Python测试框架pytest(14)用例执行后的几种状态

作者头像
wangmcn
发布2022-07-26 14:26:21
5870
发布2022-07-26 14:26:21
举报
文章被收录于专栏:AllTests软件测试

Python测试框架pytest(14)

用例执行后的几种状态

目录

  • 1、PASSED
  • 2、FAILED
  • 3、ERROR
  • 4、XFAIL

用例执行完成后,每条用例都有自己的状态。

常见的状态:

  • PASSED:测试通过
  • FAILED:断言失败
  • ERROR:用例本身写的质量不行,本身代码报错(例如:fixture 不存在,fixture 里面有报错)
  • XFAIL:预期失败,加了 @pytest.mark.xfail()

1、PASSED

1、创建test_passed.py文件

脚本代码:

代码语言:javascript
复制
#!/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文件

脚本代码:

代码语言:javascript
复制
#!/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文件

脚本代码:

代码语言:javascript
复制
#!/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文件

脚本代码:

代码语言:javascript
复制
#!/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文件

脚本代码:

代码语言:javascript
复制
#!/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文件

脚本代码:

代码语言:javascript
复制
#!/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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档