pytest之标记mark
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytest之标记mark相关的知识,希望对你有一定的参考价值。
参考技术A Pytest标记1、pytest 查找测试策略
默认情况下,pytest会递归查找当前目录下所有以test开始或结尾的python脚本,并执行文件内所有以test开始或者结束的函数和方法。
2、标记测试函数
第一种,显示指定函数名,通过::标记 :test_no_mark.py::test_func1
第二种,使用模糊匹配,使用-k选项标识: pytest test_no_mark.py -k func1
第三种,使用pytest.mark在函数上进行标记: 使用pytest.mark在函数上进行标记
pytest显示指定函数名,直接输入文件名、类名、方法名进行标记,执行部分测试用例。
核心: pytest.main(['-s','-v','test_mark.py::TestCase'])
例子
返回结果:
test_mark.py::TestCase::test_four four
PASSED
test_mark.py::TestCase::test_five five
PASSED
pytest模糊匹配,参数-k指定类名和方法名进行标记,执行部分测试用例。与::类似
核心: pytest.main(['-s','-v','test_mark.py','-k TestCase'])
返回结果:
test_mark.py::test_two two
PASSED
test_mark.py::TestCase::test_four_two four
PASSED
test_mark.py::TestCase::test_five five
PASSED
pytest中的mark标记功能目的是让我们可以执行部分用例。
场景:在不同的环境中,比如linux和windows,只满足测试符合一部分用例。还不如web项目有很多模块,只需要执行一部分模块的内容。或者分平台,使用webtest和andorid、ios环境进行部分用例测试。
解决:使用mark的方式,@pytest.mark.ios
执行:涉及到2个参数,一个是-s和-m参数。
-s: 输出打印所有信息。
-m: 执行自定义标记的部分用例。
核心: pytest.main(['-q','test_mark.py','-m not ios'])
实例:
执行没有标记ios的用例
执行结果:
4 passed, 1 deselected, 3 warnings in 0.02s
Pytest.main()函数之mark标签使用方法举例
1、创建.ini配置文件,定义标签
[pytest]# 固定的section名 markers= # 固定的option名称 smoking systems
2、创建用例,分别标记,举例如下:
import pytest
@pytest.mark.smoke
def test_a():
print('我是用例a')
def test_b():
print('我是用例b')
def test_c():
print('我是用例c')
3、创建执行所有用例的.py文件,如test_run_all.py
(-v 展示用例详细信息 -m仅执行指定标签的用例)
import pytest
if __name__ == '__main__':
pytest.main(['-v','-m smoke']) #-v 展示用例详细信息 -m仅执行指定标签的用例
以上是关于pytest之标记mark的主要内容,如果未能解决你的问题,请参考以下文章