前言

在pytest中,我们可以使用mark进行用例的自定义标记,通过不同的标记实现不同的运行策略

比如我们可以标记哪些用例是生产环境执行的,哪些用例是测试环境执行的,在运行代码的时候指定对应的mark即可

实例说明

举个

# test_demo.py
import pytest @pytest.mark.production
def test_production():
print("生产环境测试用例") @pytest.mark.dev
def test_dev1():
print("测试环境测试用例1") @pytest.mark.dev
def test_dev2():
print("测试环境测试用例2") def testnoMark():
print("没有标记测试")

使用命令pytest -s -m dev test_demo.py执行

结果如下

可以看到,只执行了两条标记了dev的用例

处理warnings信息

  • 创建一个pytest.ini文件

  • 然后在 pytest.ini 文件的 markers 中写入你的 mark 标记, 冒号 “:” 前面是标记名称,后面是 mark 标记的说明,可以是空字符串

  • 注意:pytest.ini需要和运行的测试用例同一个目录,或在根目录下作用于全局

规范使用mark标记

添加了pytest.ini文件之后 pytest 便不会再告警,但是如果我们在运行用例的时候写错了 mark 名,会导致 pytest 找不到用例,所以我们需要在 pytest.ini 文件中添加参数 “addopts = --strict-markers”来严格规范 mark 标记的使用

添加该参数后,当使用未注册的 mark 标记时,pytest会直接报错:“ 'xxx' not found in markers configuration option ”,不执行测试任务

执行标记以外的用例

pytest -s -m "not dev" test_demo.py

结果如下

执行多个自定义标记的用例

pytest -s -m "dev or production" test_demo.py

结果如下

整理参考

小菠萝的测试笔记

最新文章

  1. 一起买beta版UI测试
  2. 使用System.Drawing.Imaging.dll进行图片的合并
  3. 重写(Override)与重载(Overload)
  4. 自动解析URL
  5. java基础九[网络与线程](阅读Head First Java记录)
  6. RabbitMQ(三) -- Publish/Subscribe
  7. python 调用zabbix api接口实现主机的增删改查
  8. 走进WCF一 (异常如此多娇,引无数码农竞折煞)
  9. mvc+EF比较好的框架
  10. git submodule相关操作
  11. CodeVS1344 线型网络
  12. 3. leetcode 463 Island Perimeter
  13. 团队作业4——第一次项目冲刺(Alpha版本)7th day
  14. java39
  15. Fortran一个获取硬件系统信息的函数库
  16. C#Winform的DEV下拉下拉控件介绍
  17. mybatis中的查询语句in用法的相关问题
  18. Java access to the Domino Objects, Part 1
  19. CSS 中 calc() 函数用法
  20. 【POJ】1704.Georgia and Bob

热门文章

  1. php中输出函数的区别
  2. 炸天的3D引擎OpenCASCADE的用法及案例(https://blog.csdn.net/xipengbozai/article/details/117044032?spm=1001.2014.3001.5502)
  3. ip_conntrack or nf_conntrack : table full, dropping packet
  4. gitlab的CI/CD实现
  5. 针对Tab键不能使用解决办法(Linux系统)
  6. 分布式存储ceph---openstack对接ceph存储后端(4)
  7. 微信引流的方式 PC控制手机的方式
  8. Linux系统编程【5】——stty的学习
  9. 面试侃集合 | SynchronousQueue公平模式篇
  10. Go语言web开发---Beego的cookie