在某些场景下,我们需要部分执行测试用例,这个时候可以给测试用例打标记。类似于testng里面的分组测试。

用法:@pytest.mark.mark_name
mark_name表示标记的名字,用装饰器标记后只运行标记的用例,其他用例则跳过不执行。
代码举例:

# 文件名:over.py
import pytest

class Test:
    @pytest.mark.case1
    def test001(self):
        print('这是用例1')

    @pytest.mark.case2
    def test002(self):
        print('这是用例2')

    @pytest.mark.case3
    def test003(self):
        print('这是用例3')


if __name__ == '__main__':
    pytest.main(['-s', 'over.py', '-m=case2'])
    

# 上述代码在测试函数前面用装饰器标记,每个函数都有相应的标记名,在main函数中运行的
# 时候多传入一个参数-m=case2,那么就会执行标记名为case2的测试用例,其他用例则不执行

如下,会标明1条测试用例通过,2条测试用例deselected(就是未被选中)

 

命令行运行效果:

cd 到py文件所在的目录,命令行:pytest -s over.py -m=case1
-s是控制台输出模式,-m=case1是执行标记名为case1的测试用例

 

-m标签说明:

一个:
-m = case1

同时运行多个:
-m = case1 or case2 or case3

排除法,凡是标记为case1的都不执行,标记不为case1的都执行:
-m = not_case1

排除法,凡是标记为case1或者case2的都不执行:
-m = not(case1 or case2)

更多推荐