首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pytest-yaml-sanmu(五):跳过执行和预期失败

除了手动注册标记之外,pytest 还内置了一些标记可直接使用,每种内置标记都会用例带来不同的特殊效果,本文先介绍 3 种。

1. skip

skip 标记通常用于忽略暂时无法执行,或不需要执行的用例。

pytest 在执行用例时,如果发现用例有 skip 标记会无条件跳过,从而避免执行。

下面这个示例中,为用例使用了skip标记

执行结果如下:

图 1.skip 标记使用例被跳过执行

2. skipif

skipif 标记通常用于动态判断是否执行的用例。

pytest 在执行用例时,如果发现用例有 skipif 标记,会判断标记中的表达式:

如果为真:跳过执行

如果为假:正常执行

下面这个示例中,为用例使用了skipif标记

执行结果如下:

图 2. 条件为真时跳过执行

将 skipif 条件改为假

可以正常执行了

图 3. 条件为假时跳过执行

3. xfail

xfail 标记用来改变用例的预期结果。

一般来说,用例的预期结果执行过程中没有任何异常、错误。但是某些情况下可能预期用例执行过程中出现异常(例如断网)。

pytest 在执行用例时,如果发现用例有 xfail 标记:

如果出现异常,将结果改为 xfailed,意外预期内的失败

如果没有异常,将结果改为 xpassed,以为预期外的通过

创建三个用例,分别实现正常的通过、预期内外的失败,预期外的通过

# tests/test_mark_skipif.yaml

test_name: 失败的用例steps: - request: method: get url: http://x1x2c3x5.x6 # 错误的地址,注定失败

---test_name: 预期内的失败mark: - xfail # 通过标记预期失败steps: - request: method: get url: http://x1x2c3x5.x6 # 错误的地址,注定失败

---test_name: 预期外的通过mark: - xfail # 通过标记预期失败steps: - request: method: get url: https://www.baidu.com # 正确的地址会成功

执行结果如下:

图 4. 预期内的失败与预期外的通过

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OS8Nbi8I-iE2iHNlwJRoh2FQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券