pytest Mark标记测试用例

举报
霍格沃兹测试开发 发表于 2024/05/14 18:23:33 2024/05/14
【摘要】 Mark标记测试用例场景:只执行符合要求的某一部分用例,可以把一个web项目划分为多个模块,然后指定模块名称执行。解决:在测试用例方法上加@pytest.mark.标签名执行:-m执行自定义标记的相关用例pytest -s test_command_param.py -m=webtestpytest -s test_command_param.py -m apptestpytest -s ...

Mark标记测试用例

  • 场景:只执行符合要求的某一部分用例,可以把一个web项目划分为多个模块,然后指定模块名称执行。
  • 解决:在测试用例方法上加@pytest.mark.标签名
  • 执行:-m执行自定义标记的相关用例

pytest -s test_command_param.py -m=webtest
pytest -s test_command_param.py -m apptest
pytest -s test_command_param.py -m “not ios”

import pytest

def double(a):
    return a * 2

# 测试数据:整型
@pytest.mark.int
def test_double_int():
    print("test double int")
    assert 2 == double(1)

# 测试数据:负数
@pytest.mark.minus
def test_double_minus():
    print("test double minus")
    assert -2 == double(-1)

# 测试数据:浮点数
@pytest.mark.float
def test_double_float():
    print("test double float")
    assert 0.2 == double(0.1)

@pytest.mark.float
def test_double2_minus():
    print("test double float")
    assert -10.2 == double(0.2)

@pytest.mark.zero
def test_double_0():
    assert 10 == double(0)

@pytest.mark.bignum
def test_double_bignum():
    assert 200 == double(100)

@pytest.mark.str
def test_double_str():
    assert 'aa' == double('a')

@pytest.mark.str
def test_double_str1():
    assert 'a$a$' == double('a$')

跳过(Skip)及预期失败(xFail)

这是pytest的内置标签,可以处理一些特殊的测试用例,不能成功的测试用例等

skip:始终跳过该测试用例。采用添加装饰器@pytest.mark.skip,或者添加跳过代码pytest.skip(reason)等两种方式。

image.png

skipif:遇到特定情况,跳过该测试用例。采用添加装饰器@pytest.mark.skipif的方式。

image.png

xFail:遇到特定情况,产生一个“期望失败”的输出。采用添加装饰器@pytest.mark.xfail,或者添加跳过代码pytest.xfail(reason)等两种方式。

image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。