随笔分类 - Pytest
Pytest使用
摘要:可以通过为用例函数添加pytestmarker属性为用例动态添加mark标记,示例如下 import pytest import warnings warnings.filterwarnings('ignore') def test_b(): pass def test_a(): pass # 为用
阅读全文
摘要:有时候我们需要在运行一批用例前对环境进行检查,如果检查不通过则不运行所有的用例。 实现的方法有3种: 使用-x参数,快速失败(遇到失败即停止运行):在第一个用例中进行检查,如果不通过则使用例失败,则后续用例不会执行。 但是如果期望,后面的用例,失败了不影响下一条,则使用-x就不能支持。 添加一个全局
阅读全文
摘要:使用Pytest测试框架生成测试报告最常用的便是使用pytest-html和allure-pytest两款插件了。 pytest-html简单(支持单html测试报告),allure-pytest则漂亮而强大。 当然想要使用自定义模板生成测试报告也非常简单,简单实现步骤如下: 介入Pytest运行流
阅读全文
摘要:测试框架中往往要实现环境切换和环境变量的选择,一般的实现方案 使用pytest-base-url,切换base_url配置 使用pytest-variables,配合不同的test.json/beta.json/prod.json文件来实现 使用的问题 是json编辑容易出错 需要建立额外的多个数据
阅读全文
摘要:安装中文插件 Settings--> Plugins --> 搜索 Chinese --> 安装下图插件并重启 设置Pytest用例发现 让测试用例前显示绿色执行三角 设置 --> 工具 --> Python集成工具--> 测试 --> 默认测试运行程序选pytest 设置完重启PyCharm,效果
阅读全文
摘要:[TOC] 更改标准(Python)测试发现 在测试收集过程中忽略路径 通过 ignore=path在cli上传递选项,可以轻松地在收集过程中忽略某些测试目录和模块。pytest允许多个 ignore选项。例: 现在,如果你调用pytest使用,你会发现只收集测试模块,这不符合指定的模式: igno
阅读全文
摘要:返回: Pytest权威教程 配置 命令行参数和配置文件设置 你可以使用常规帮助选项-h,来获取有关命令行参数和配置文件选项相关的帮助信息 pytest -h # 显示支持的命令行参数及配置文件选项 结果显示已安装插件、注册的命令和配置文件选项。 初始化:确定项目根目录ROOTDIR和配置文件INI
阅读全文
摘要:[TOC] "返回: Pytest权威教程" Pytest导入机制和sys.path/PYTHONPATH 包中的测试脚本及conftest.py文件 参考文件目录布局: 执行时: 由于用例所在tests/目录中包含了__init__.py文件,当Pytest找到foo/bar/tests/test
阅读全文
摘要:返回: Pytest权威教程 配置项 这里是一个可以在被写入内置的配置选项的列表pytest.ini,tox.ini或setup.cfg通常位于版本库的根文件。所有选项必须在一个[pytest]部分下([tool:pytest]对于setup.cfg文件)。 注意: 的使用setup.cfg是不推荐
阅读全文
摘要:[toc] "返回: Pytest权威教程" 特殊变量(Special Variables) pytest在测试模块中定义时以特殊方式处理一些全局变量。 collect_ignore 参考: 自定义测试集合 可以在 conftest.py文件中 声明以排除测试目录或模块。需要成为 。 collect
阅读全文
摘要:返回: Pytest权威教程 Pytest中的对象 Pytest中的对象的完整使用可参考: Fixturs及Hooks方法 CallInfo对象 class CallInfo: 结果/异常信息是一个函数调用。 Class对象 class Class: 基类:_pytest.python.PyColl
阅读全文
摘要:返回: Pytest权威教程 钩子函数(Hooks) 参考: 编写插件 引用可由conftest.py文件实现的所有钩子函数。 初始化时的钩子函数 graph LR A1(添加钩子<br/>pytest_addhooks)-->A2(添加参数<br/>pytest_addoption) A2-->A
阅读全文
摘要:返回: Pytest权威教程 Fixtures函数 参考: Pytest Fixtures:显式,模块化,可扩展 测试函数,或其他Fixture函数,通过函数参数,来请求使用Fixture函数。 引用Fixture函数的测试用例,示例如下: def test_output(capsys): prin
阅读全文
摘要:[TOC] "返回: Pytest权威教程" 标记(Marks) 可以使用标记应用元数据来 测试函数 (但不是Fixture方法),然后可以通过Fixture方法或插件访问。 pytest.mark.filterwarnings 参考: @ pytest.mark.filterwarnings。 为
阅读全文
摘要:今天Nelly问我Pytest能不能支持从TestClass类外传入参数?从类外批量传入各个test方法需要的参数。因为数据文件可能有很多情况,不方便依次匹配。 然而又必须用类对用例进行归类及复用,数据要通过类外进行遍历。不能直接使用pytest.mark.parametrize。 这里采取的一个做
阅读全文
摘要:[TOC] "返回: Pytest权威教程" Bash自动补全设置 在Linux/Mac bash shell环境下,可以使用 "argcomplete" 对 命令进行自动补全。首先要安装和启用 。 使用以下命令安装argcomplete: 全局激活argcomplete命令补全,对所有支持的Pyt
阅读全文
摘要:[TOC] "返回: Pytest权威教程" 示例和自定义技巧 这是一个(不断增长的)示例列表。如果你需要更多示例或有疑问,请联系我们。另请参阅包含许多示例代码段的 综合文档。此外,stackoverflow.com上的pytest专栏通常会有示例解答。 基本示例参考: "安装及入门" : 基础入门
阅读全文
摘要:返回: Pytest权威教程 不稳定测试用例处理 “不稳定”测试用例是指,有时候用例通过,有时候失败。用例间歇或偶发性出现故障,并且不清楚原因。本页讨论了pytest的一些帮助处理这些不确定测试用例的功能。这些功能可以帮助你快速确定、修复或缓解这些问题,或提供一些其他的常规策略。 为什么不稳定测试用
阅读全文
摘要:[TOC] "返回: Pytest权威教程" 优质集成实践 使用pip安装包 对于开发,我们建议你将[venv来安装应用程序和任何依赖项,以及 包本身。这可确保你的代码和依赖项与系统Python安装隔离。 接下来, 使用以下最低内容将文件放在包的根目录中: 包裹的名称在哪里。然后,你可以通过从同一目
阅读全文
摘要:[toc] "返回: Pytest权威教程" 函数(Functions) pytest.approx 断言两个数字(或两组数字)在某个容差范围内彼此相等。 由于浮点运算的复杂性,我们直觉期望相等的数字并不总是如此: 编写测试时通常会遇到此问题,例如,确保浮点值是您期望的值。处理此问题的一种方法是断言
阅读全文