当前位置: 首页 > news >正文

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

图片

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

1. skip

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

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

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

# tests/test_mark_skip.yaml
test_name: 跳过用例mark:   - skip # 跳过该用例,不执行steps:  - request:      method: get      url: https://www.baidu.com

执行结果如下:

图片

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

2. skipif

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

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

  • 如果为真:跳过执行

  • 如果为假:正常执行

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

# tests/test_mark_skipif.yaml
test_name: 跳过条件为真mark:  - skipif: 1==1 # 跳过该用例,不执行steps:  - request:      method: get      url: https://www.baidu.com

执行结果如下:

图片

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

将 skipif 条件改为假

---test_name: 跳过条件为假mark:  - skipif: 1==2 # 不跳过该用例,正常执行steps:  - request:      method: get      url: https://www.baidu.com

可以正常执行了

图片

图 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. 预期内的失败与预期外的通过

能看到这里说明是真爱,关注一下吧

http://www.lryc.cn/news/388327.html

相关文章:

  • linux指令整合(centos系统持续更新中。。。)
  • 个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
  • Cesium与Three相机同步(3)
  • PMP考试报名项目经历怎么填写?指引请收好
  • Git的基本使用方法
  • 深入剖析 @Autowired 和 @Resource 在 Spring 中的区别
  • Golang-slice理解
  • 【Linux系统】文件描述符fd
  • 【嵌入式——FreeRTOS】启动任务调度器
  • EFCore_客户端评估与服务端评估
  • Java面试题--JVM大厂篇之深入了解G1 GC:高并发、响应时间敏感应用的最佳选择
  • SAP配置发布WebService接口并调用(超级详细)
  • 中英双语介绍美国首都:华盛顿哥伦比亚特区(Washington, D.C.)
  • java:aocache的单实例缓存(一)
  • pcap包常见拆分方法
  • C++中的类型转换操作符:static_cast reinterpret_cast const_cast dynamic_cast
  • MySQL-SQL优化Explain命令以及参数详解
  • 别只会重启了!进来告诉你AP无法上线怎么办
  • 数据恢复篇:如何在 Android 手机上恢复未保存/删除的 Word 文档
  • Python | Leetcode Python题解之第208题实现Trie(前缀树)
  • Ethernet是以太网通讯
  • 咖啡消费旺季到来 为何想转让的库迪联营商却越来越多
  • 神经网络原理
  • 安卓应用开发学习:获取经纬度及地理位置描述信息
  • 各类排序方法 手撕快排 回顾经典快排 优化版快排
  • 独一无二的设计模式——单例模式(Java实现)
  • 使用MoA(Mixture of Agents)混合智能体技术,结合多个开源大语言模型如Llama3、phi-3和Mistral,实现一个强大的AI智能体
  • 前端面试题_Css
  • AI在线免费视频工具3:声音生视频
  • final、const、readonly关键字在不同语言中代表着什么