VOL 146

28

2020-07

今天距2021年156天

这是ITester软件测试小栈第146次推文

点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。

微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信群”一起打怪升级。

本文2010字,阅读约需7分钟

在上一篇Pytest系列文章:Pytest之基本介绍,主要介绍Pytest特点、安装配置及简单运行。

以下主要介绍:Pytest的用例收集规则及命令行参数详解。

用例收集

1

用例收集规则

  • 从一个或者多个目录开始查找,你可以在命令行指定文件或者目录,如果未指定那么从当前目录开始收集用例;

  • 在该目录和所有子目录下递归查找测试模块;

  • 测试模块是指文件名为test_*.py或者*_test.py的文件;

  • 在测试模块中查找以test_开头的函数;

  • 查找名字以Test开头的类。其中首先筛选掉包含__init__()函数的类,再查找类中以test_开头的类方法。

2

运行收集的用例

现有项目结构如下:

具体代码:

login/test_login.py

class TestLogin:def test_demo01(self):a = 1assert a == 1def add(self):b = 1c = 2assert b + c == 3

pay/test_pay.py

def test_pay():name = "vivi"assert "v" in name

test_demo.py

def test_demo02():print("这是demo02")a = 1assert a == 1

3

运行测试用例

切换到项目路径,在命令行输入:pytest -v

输出结果为:

根据用例收集规则,TestLogin类中add方法不是以test开头,所以pytest不会收集。

命令行参数

1

查看命令行参数

命令行模式下,输入:pytest --help

说明:出现详细的命令行参数。

2

命令行参数详解

pytest -v

说明:可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等。

pytest -s

说明:输出用例中的调式信息,比如print的打印信息等。

test_demo.py

def test_demo02():print("这是demo02")a = 1assert a == 1

命令行输入:pytest -s test_demo.py

pytest -m

说明:用于标记测试并分组,执行特定的测试用例。

这个在后续打标记文章详细解释,此处暂不介绍。

pytest -k

说明:可以通过表达式运行指定的测试用例。

比如使用命令:pytest -k "test_demo01 or test_demo02",就会指定运行test_demo01和test_demo02两条用例。

pytest -q

说明:简化输出信息。

pytest -x

说明:遇到错误或者用例不通过,则退出执行。

手动将login/test_login.py中的用例改成不通过。

输入命令:pytest -v -x

收集用例3个,但第二个test_demo01用例执行失败,就会全局停止执行,所以第三个用例将不会执行。

pytest --lf

说明:--last-failed 只重新运行上次运行失败的用例(或如果没有失败的话会全部跑)。

命令行输入: pytest -v --lf

通过运行结果看出,本次用例只是运行了上次运行错误的测试用例test_demo01。

pytest --ff

说明:--failed-first,先执行完上次失败的测试后,再执行上次正常的测试用例。

输入命令:pytest -v --ff

通过运行结果看出,本次运行,先运行了上次失败的用例,然后执行正常的测试用例。

pytest --maxfail=num

说明:用例运行时,允许的最大失败次数,超过则立即停止执行。

输入命令:pytest -v --maxfail=2

⑩ 运行指定用例

模块、类、函数及方法之间用::进行分割。

我们先看下之前运行的结果图。

比如想运行TestLogin类下的测试用例。

使用命令:pytest -v login/test_login.py::TestLogin

以上

That‘s all

更多系列文章

敬请期待

ITester软件测试小栈

往期内容宠幸

1.Python接口自动化-接口基础(一)


2.Python接口自动化-接口基础(二)


3.Python接口自动化-requests模块之get请求


4.Python接口自动化-requests模块之post请求


5.Python接口自动化之cookie、session应用


6.Python接口自动化之Token详解及应用


7.Python接口自动化之requests请求封装


8.Python接口自动化之pymysql数据库操作


9.Python接口自动化之logging日志


10.Python接口自动化之logging封装及实战

想获取更多最新干货内容

快来星标 置顶 关注我

<<  滑动查看下一张图片  >>

后台 回复"资源"取干货

回复"微信群"一起打怪升级

测试交流Q群:727998947

点亮一下在看,你更好看

Pytest之收集用例及命令行参数相关推荐

  1. pytest中pytest_addoption用法 动态添加命令行参数 (钩子函数)

    考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...

  2. pytest合集(3)— 命令行参数

    1.命令行参数大全 使用 pytest -h 可以查看 pytest 的命令行参数,有 10 大类共 132 个. 详见:Python pytest 132 个命令行参数用法 - 习久性成 - 博客园 ...

  3. python编写命令行框架_python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  4. 第三:Pytest框架之命令行参数(一)

    一.编写第一个测试函数(用例) 1 from selenium import webdriver2 3 def testOpenUrl():4 try:5 driver = webdriver.Fir ...

  5. 第四:Pytest框架之命令行参数(二)

    前言 上篇博客说到命令行执行测试用例的部分参数如何使用?今天将继续更新其他一些命令选项的使用,和pytest收集测试用例的规则! Pytest执行用例命令行参数 –collect-only:罗列出所有 ...

  6. pytest十二:cmd命令行参数

    命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在 cmd 执行"pytest -html=report.html",这里面的"-html=report.ht ...

  7. 【pytest】Hook 方法之 pytest_addoption :注册命令行参数

    Hook 方法之 pytest_addoption : pytest_addoption 可以让用户注册一个自定义的命令行参数,方便用户将数据传递给 pytest: 这个 Hook 方法一般和 内置 ...

  8. 002 第一季SpringBoot2核心技术-核心功能:配置文件、Web开发(原生组件)、数据访问、单元测试、指标监控、原理解析:@Value、命令行参数、手动获取bean、自定义starter

    三.核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式. 1.1.2 yaml 1) 简介 ...

  9. Windows安装用于OCR的Tesseract及使用命令行参数进行OCR

    Windows安装用于OCR的Tesseract及使用命令行参数进行OCR 1. 效果图 2. Tesseract 安装及验证 参考 这篇博客将介绍如何安装和使用光学字符识别(OCR Optical ...

最新文章

  1. Riak VClock
  2. c++几种STL比较
  3. 返回1到n的所有组合python_如何在Python中生成0-1矩阵的所有可能组合?
  4. 产品经理的思考利器——UML
  5. python基础教程:filter(),map()函数用法
  6. 关于stm32F4CAN总线调试
  7. MySQL 高级 - 启动及登录MySQL
  8. 华为杯数学建模优秀论文_数学建模经典例题(2011年国赛A题与优秀论文)
  9. 在微信浏览器字体被调大导致页面错乱的解决办法
  10. Python_列表2
  11. linux线程相关函数接口
  12. Java面向对象的程序设计
  13. Linux镜像最全版本下载网站
  14. Java基础练习题(一维数组)
  15. Error writing to registry key: RegSetValueEx failed; code 5
  16. 自建魔兽世界sf服务器,魔兽世界80自己搭服务器,热度却持续不到一天,全部用命令!...
  17. JAVAScript:mobile端,基于transform-origin和tranform(scale),实现表格缩放
  18. java中的三种移位运算符
  19. 计算机图形学是研究真实,计算机图形学论文真实感制图技术在图形学中的应用...
  20. 软件测试基础篇(3)

热门文章

  1. BCD与ASCII码互转-C语言实现
  2. 一摞烙饼最上面一个的另一面为焦的概率
  3. 计算机辅助初中数学教学,计算机辅助数学教学的优势
  4. 阶梯剖视图_*小星推荐*—模具图纸剖视图的种类及画法,你学到了吗?
  5. 计算机组成原理中移码怎么算,计算机组成原理中移码是怎么回事?
  6. python三维圆曲面_python – matplotlib中的曲面和三维轮廓
  7. 关于投篮的数学建模模型_数学建模 投篮命中率的数学模型
  8. mysql 提交 按钮_表单提交按钮input和button、a的差异
  9. python调整屏幕缩放比例_python实现批量按比例缩放图片效果
  10. linqto 多个关键字模糊查询_查询函数Choose、Lookup、Hlookup、Vlookup应用技巧解读