标记
@pytest.mark 是 Pytest 一个装饰器,用于给测试用例添加标记,这些标记除了能对对测试进行分类、过滤外,还能给被装饰的函数一些额外的功能!
夹具的分类
我们按照有无功能将 标记分为: 功能性标记 和 无功能性标记 两大类
无功能性夹具
pytest 的所有内置 mark 都是功能性标记,用户自定义标记则是无功能标记!
首先我们需要 Pytest 配置文件中注册自定义的 mark,以避免警告如:
pytest.ini
最后使用即可(给测试用例打打标记)
可以筛选出仅符合条件的用例去跑测试,比如
另外我们还可以根据标签生成测试结果分组统计,pytest 原生不完全支持这个功能,我们可以 pytest-html来解决, pip install pytest-html
功能性夹具
如上所提,pytest内置了很多功能性mark供我们使用!
参数化标记
@pytest.mark.parametrize,是pytest内置的一个非常强大且重要的功能性标记,核心功能就是:让一个测试函数使用不同的参数运行多次!
单参数测试用例
运行之后,可以看到测试用例test_is_positive跑了5次(1次失败+4次成功)

单个参数的值除了是基本类型,还可以是复杂点的类型,比如字典
多参数测试用例
参数别名ids
其实还支持第三个参数@pytest.mark.parametrize(params_name,params_value, ids)
第三个参数是 ids为可选参数,用来给每组参数起一个可读的名字,也是列表类型,主要用于提高测试报告可读性。
运行测试后的结果是
夹具触发标记
借助内置 mark @pytest.mark.usefixtures,我们也能给测试函数触发夹具生命周期,如下:
这个我们下一章节具体讲!

