8-pytest定制化执行

mark标签

 用于pytest中用例的定制化执行,可指定执行哪些标签下的用例

标签命名

@pytest.mark.ClassA   # 定义mark标签
class TestClassA:
    @pytest.mark.caseA  # 定义mark标签
    def test_caseA(self):
        print('1')
        
if __name__ == '__main__':
    


-m
只执行caseA下的用例:‘-m’,'caseA’
执行caseA和caseB下的用例:‘-m’,'caseA or caseB’
只执行除caseA下的用例:'not caseA’
执行除了caseA和caseB下的用例:‘-m’,'not(caseA or caseB)'

-k 模糊匹配用例名称
只会执行标签中函数匹配字符的用例

-v 多层化

格式:测试文件::测试类::测试方法

示例:pytest -s -v test_shop.py::TestShop::test_update_shop

只会执行指定层级下的测试用例

-sq 简化打印信息
其中-s 表示输出print内容,-q简化打印信息

skip
需要跳过某些方法或类时,则要在前面添加@pytest.mark.skip(‘跳过原因’)
-rs时,会显示跳过原因
示例:@pytest.mark.skip(‘我不想执行,跳过吧’)
8-pytest定制化执行_第1张图片
skipif
需要根据条件真假跳过某些方法或类时,则要在前面添加@pytest.mark.skipif(条件,reason=‘跳过原因’)
示例:@pytest.mark.skipif(1==1,reason=‘true时跳过’)
8-pytest定制化执行_第2张图片


另外,如果执行pytest时,报以下错误:
PytestUnknownMarkWarning: Unknown pytest.mark.{你的标签名}
原因: 没有被框架pytest认证
解决办法:认证

步骤1:安装ini插件
8-pytest定制化执行_第3张图片
步骤2:在包下创建pytest.ini配置文件,内容填写如下,标签名:注释

[pytest]
markers =
    mark1: run mark1 case
    mark2: run mark2 case

你可能感兴趣的:(接口测试,python)