pytest打标记-mark功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest打标记-mark功能相关的知识,希望对你有一定的参考价值。

参考技术A 1、在项目根目录下创建文件:pytest.ini
文件中写入内容

success、fail、 flow这三个就是标记,也可以给标记加上说明,说明必须是英文

2、在测试方法上方打上标记
格式: @pytest.mark.+ 对应的标记,如:
@pytest.mark.success
@pytest.mark.fail
@pytest.mark.flow

3、运行测试要加标记参数-m和标记
main文件 pytest命令行:-m, 标记名

需要运行多个不同标记的用例,用or添加,如下

指定标记名不被运行,标记前面加not+空格:

pytest配置pytest.ini,配置mark标签

参考技术A

pytest默认的测试用例收集规则

我们是可以修改或者添加这个用例收集规则的;当然啦,是建议在原有的规则上添加的,如下配置

备注:冒号之后是描述信息(可写可不写)。

打标记的范围:测试用例、测试类、模块文件

1.方法一

在测试用例/测试类前加上:@pytest.mark.标记名

也可以在一个用例上打多个标签,多次使用@pytest.mark.标签名

2.方法二

多标签模式:pytestmark = [pytest.mark.标签1, pytest.mark.标签2......]

在模块文件里,同理(py文件下,所有测试函数和测试类里的测试函数,都有该标签):

根据测试用例/测试类/测试模块,标记了对应的标签后,使用对应的命令行在cmd中或者Pycharm中的Terminal中运行,即可进行用例的筛选,命令行为:
pytest -m 标签名
pytest - m "smoke or demo" 只运行smoke 和 demo标签

@pytest.mark.skip(reason=\'跳过的原因\') 打在测试类或者测试用例上面

@pytest.mark.skipif("sys.platform==\'win32\'",reason=\'第三方不想测\')

eval(self,condition) condition是一个eval脱衣可以执行的,如果为True就跳过

condition 是一个条件可以是字符串eval脱衣服的表达式,还可以直接是表达式比如: condition = 2>1

pytestmark =pytest,mark.skip() 变量pytestmark这个变量不可更改

myskip = pytest.mark.skip() 自定义跳过装饰器,使用一个变量接收对象。使用的时候直接@变量 打在被跳过的函数或者类

以上是关于pytest打标记-mark功能的主要内容,如果未能解决你的问题,请参考以下文章

Pytest之skipskipifxfail

pytest之mark功能

pytest 进行自定义mark标记,进行分类管理执行用例

pytest-mark跳过

pytest-15-自定义标记mark

13-pytest-自定义mark标记