测试函数标记

pytest提供了标记机制,允许你使用marker对测试函数(测试用例)做标记,一个测试函数(测试用例)可以有多个marker,一个marker也可以用例标记多个测试函数(测试用例)。针对冒烟测试,我们可以使用marker标记,检查系统有没有重大缺陷,因为冒烟测试通常是不会包含全套测试的。

选定了两个测试函数(测试用例)来作为冒烟测试,首先我们在 test_run_pass() 、test_run_fail() 两个测试函数(测试用例)的头部添加装饰器 @pytest.mark.smoking; @pytest.mark.get_testing(注意:smoking;get_testing 标记并非pytest 内置的,是我自己在配置文件定义的)。

import pytest@pytest.mark.smoking
def test_run_pass():expected = (1, 2, 3)assert expected == (1, 2, 3)@pytest.mark.smoking
def test_run_fail():expected = (1, 2, 3)assert expected == (1, 2, 4)

运行展示结果如下:

osts\ReadPytest>pytest -v -m 'smoking' test_two.py
================================================================================== test session starts ===================================================================================
collected 2 items                                                                                                                                                                         test_two.py::test_run_pass PASSED                                                                                                                                                   [ 50%]
test_two.py::test_run_fail FAILED                                                                                                                                                   [100%]======================================================================================== FAILURES ========================================================================================
_____________________________________________________________________________________ test_run_fail ______________________________________________________________________________________@pytest.mark.smokingdef test_run_fail():expected = (1, 2, 3)
>       assert expected == (1, 2, 4)
E       assert (1, 2, 3) == (1, 2, 4)
E         At index 2 diff: 3 != 4
E         Full diff:
E         - (1, 2, 4)
E         ?        ^
E         + (1, 2, 3)
E         ?        ^test_two.py:20: AssertionError
================================================================================ short test summary info =================================================================================
FAILED test_two.py::test_run_fail - assert (1, 2, 3) == (1, 2, 4)
============================================================================== 1 failed, 1 passed in 0.09s ===============================================================================

上面展示的是每个测试函数上标记了一个装饰器,现在我们开始添加多个装饰器

import pytest@pytest.mark.smoking
def test_run_pass():expected = (1, 2, 3)assert expected == (1, 2, 3)@pytest.mark.get_tests
@pytest.mark.get_testing
@pytest.mark.smoking
def test_run_fail():expected = (1, 2, 3)assert expected == (1, 2, 3)

运行后展示的效果:

注意:在这需要注意一个细节,在输入命令时,使用单引号时运行失败,使用双引号时运行成功,至少目前我本地运行是要必须这样

F:\TESTING\BlogPosts\ReadPytest>pytest -v -m "get_testing"
================================================================================== test session starts ===================================================================================
collected 8 items / 7 deselected / 1 selected                                                                                                                                             test_two.py::test_run_fail PASSED                                                                                                                                                   [100%]============================================================================ 1 passed, 7 deselected in 0.06s =============================================================================

标记还可以结合逻辑表达式 :| and | or | not |

运行后展示的效果:

\TESTING\BlogPosts\ReadPytest>pytest -v -m "get_testing and smoking"
================================================================================== test session starts ===================================================================================
collected 8 items / 7 deselected / 1 selected                                                                                                                                             test_two.py::test_run_fail PASSED                                                                                                                                                   [100%]============================================================================ 1 passed, 7 deselected in 0.09s =============================================================================

F:\TESTING\BlogPosts\ReadPytest>pytest -v -m "get_testing or smoking"
================================================================================== test session starts ===================================================================================
collected 8 items / 6 deselected / 2 selected                                                                                                                                             test_two.py::test_run_pass PASSED                                                                                                                                                   [ 50%]
test_two.py::test_run_fail PASSED                                                                                                                                                   [100%]============================================================================ 2 passed, 6 deselected in 0.06s =============================================================================

" smoking and not get_testing " 的作用是筛选出有smoking标记,但没有get_testing的标记的测试

:\TESTING\BlogPosts\ReadPytest>pytest -v -m "smoking and not get_testing"
================================================================================== test session starts ===================================================================================
collected 8 items / 7 deselected / 1 selected                                                                                                                                             test_two.py::test_run_pass PASSED                                                                                                                                                   [100%]============================================================================ 1 passed, 7 deselected in 0.05s =============================================================================

带有相同标记的测试即使存放在不同的 . py文件下,也会一起被执行,运行后展示效果如下:

ESTING\BlogPosts\ReadPytest>pytest -v -m "get_testing"
================================================================================== test session starts ===================================================================================
collected 8 items / 5 deselected / 3 selected                                                                                                                                             test_one.py::test_recursion_depth PASSED                                                                                                                                            [ 33%]
test_three.py::TestThree::test_01_three_pass PASSED                                                                                                                                 [ 66%]
test_two.py::test_run_fail PASSED                                                                                                                                                   [100%]============================================================================ 3 passed, 5 deselected in 0.12s =============================================================================

给测试添加标记的场景大部分用于我们冒烟测试,当然我们上面所举的都是简单例子,还不能算是合理且完整的冒烟测试,合理完成的冒烟测试肯定会涉及业务逻辑和数据库的改动,但是标记的应用基本就是这样的,后期在编写好的测试用例上添加即可。


以上就是pytest中marker标记,如总结有不当之处,还请多多赐教,始终相信你的努力,终会在某一天得到回报!!!

pytest【marker标记】相关推荐

  1. html百度地图中心点不正确,百度地图嵌入弹出层,无法准确正确显示marker标记到中心位置的问题...

    最近同事遇到了一个问题,找我帮忙,先说下情况: 1,页面中有一个弹出框,也就是弹出层,弹出层里面的html是实用table, 其中一个tr中使用div作为百度地图的容器 如图: 2,打开弹出层后,根据 ...

  2. 高德地图实现marker标记,Text多点文本标记,标记信息窗体,手动选点功能

    1.marker标记,Text多点文本标记,标记信息窗体 效果: 代码: <!DOCTYPE html> <html> <head><meta charset ...

  3. 高德地图map.add(marker),marker标记不显示

    今天使用了高德地图的map.add(marker),使用从后端获取的经纬度在地图上面标记一个点,不知道为什么,是按照高德地图的官方文档来得,但是还是一直没有出现标记点,我把js翻来覆去改了好多遍,代码 ...

  4. Py之matplotlib:matplotlib绘图中与颜色相关的参数(color颜色参数、linestyle线型参数、marker标记参数)可选列表集合(建议收藏)

    Py之matplotlib:matplotlib绘图中与颜色相关的参数(color颜色参数.linestyle线型参数.marker标记参数)可选列表集合(建议收藏) 目录 matplotlib绘图中 ...

  5. Pytest自定义标记mark及特定运行方式

    mark 标记 标记执行指定类 pytest.main(['-s','文件名','-m=标记名']) pytest.main(['-s','test01.py','-m=test']) import ...

  6. pytest之标记会失败的测试:pytest.mark.xfail

    可以在用例之前加上:@pytest.mark.xfail(),使用xfail标记,则告诉pytest运行此次测试,但是我们预期它会失败. 接着查看控制台输出结果,如果出现了小x或者X x代表XFAIL ...

  7. GIS(一)——在js版搜索地图上添加Marker标记

    由于我们做的是有关于旅游方面的项目,所以涉及到了地图功能.我接到的其中一个任务就是,在地图上显示指定的几个景点,并在地图上加上标记. 我们项目用的是搜狗地图,使用的是js版本.大家有兴趣的话,可以参考 ...

  8. Python,地理地图可视化:plotly绘制mapbox地图城市中心点经纬度marker标记

    Python地理地图可视化:plotly标记mapbox地图城市中心点经纬度marker import plotly.graph_objects as goKEYS = ['中心点经纬度', '维度' ...

  9. 腾讯地图地址搜索marker标记demo

    前言 微信小程序项目需要实现输入地址搜索解析出相应经纬度并在地图上打点标注. 前期准备 1. 申请腾讯位置服务key 2.npm install qqmap --save 引入需要的js文件 在App ...

最新文章

  1. 涵盖18+ SOTA GAN实现,这个图像生成领域的PyTorch库火了
  2. php 静态扩展,thinkphp5行为扩展实现html静态缓存设置
  3. Oracle基本概念与数据导入
  4. 群策群力:破机房征求灵丹妙药
  5. 机器学习——文件的读取
  6. 花旗linux 内核 如何调试,揭秘首个运行在Linux平台的核心银行系统
  7. Atitit.解决org.hibernate.DuplicateMappingException: Duplicate class/entity mapping
  8. OOP in PHP
  9. 梯度下降算法以及线性回归模型
  10. 如何在Mac上访问 USB 驱动器?
  11. 关于图的题目不给数据范围的情况如何解决
  12. ORK包的安装与linemod算法识别测试 (使用kinect v2 出现很奇怪的问题和解决)
  13. plsql 64连接32oracle,32位plsql developer连接64位oracle的方法
  14. 基于php的物流系统设计与实现
  15. 2020中青杯A题集成电路通道布线数学建模全过程论文及程序
  16. (3)paddle---近视眼睛分类的例子
  17. armbian ubuntu 桌面_armbian安装lxde桌面
  18. 产生分类中的双月问题的数据集
  19. Eclipse报错: An error has occurred.
  20. 321影音代码(万能播放器)源码

热门文章

  1. 云测试(cloud testing)之我见
  2. PyQt5 的textedit下的setPlainText()和setText区别
  3. 使用Keras进行深度学习:(六)LSTM和双向LSTM讲解及实践
  4. 数据分析课设(SPSS,EVIEWS,R)【理论】
  5. Spring Boot技术栈博客企业前后端
  6. 条件随机场(CRF)原理和实现
  7. iOS企业版app部署到自己的服务器
  8. 一款高效读书笔记app推荐
  9. python学习 字典
  10. HASH和HMAC(7):SHA3-224/256/384/512算法原理