• pytest---mark标记用例


    前言

      自动化过程中由于用例比较多,我们可以通过模块进行划分。在执行过程中,想要根据用例的模块进行执行,如果按照以前的unittest的思想不同的模块写入不同的py文件中,但是pytest就不用了这样做了,pytest可以进行通过标记内容执行。这个在前面的参数化内容中,简单的介绍了

    mark

    mark属于pytest装饰器中的其中一个。可以用来进行标记用例。语法: pytest.mark.模块名 

    import pytest
    
    class Test01():
    
        @pytest.mark.anjing
        def test_01(self):
            print('---用例01---,属于anjing模块下')
    
        @pytest.mark.test
        def test_02(self):
            print('---用例02---,属于test模块下')
    
        @pytest.mark.anjing
        def test_03(self):
            print('---用例03---,属于anjing模块下')
    
    if __name__ == '__main__':
        pytest.main(['-vs'])

    这里我们先通过-m 加上标签名。然后进行执行。通过结果发现只执行了标记的anjing的模块

     

    注意:这里需要提一个后面介绍的知识点。pytest.ini,我们需要将标记的内容放到mark中,不然的话就会报warning

    通过not匹配模块

    如果不想执行anjing模块,我们可以直接通过not进行排除, 执行除了anjing模块的全部模块

    多个模块同时执行

    如果想要同时执行标记的多个模块可以通过or进行匹配

    import pytest
    
    class Test01():
    
        @pytest.mark.anjing
        def test_01(self):
            print('---用例01---,属于anjing模块下')
    
        @pytest.mark.test
        def test_02(self):
            print('---用例02---,属于test模块下')
    
        @pytest.mark.anjing
        def test_03(self):
            print('---用例03---,属于anjing模块下')
    
        @pytest.mark.admin
        def test_04(self):
            print('---用例04---,属于login模块下')
    
    if __name__ == '__main__':
        pytest.main(['-m','anjing'])

    模糊用例名称匹配

    如果多个用例,我们想要执行特定名称,可以通过-k 加用例名,这里安静只执行用例2 和用例4。当然也可以通过

  • 相关阅读:
    ORACLE 当字段中有数据如何修改字段类型
    ORACLE 语句
    对接支付宝支付接口开发详细步骤
    生成uuid
    DataGrip如何连接和移除MySQL数据库
    iOS提交AppStore被拒原因
    swift系统学习第二章
    swift系统学习第一章
    iOS开发:JavaScriptCore.framework的简单使用--JS与OC的交互篇
    iOS开发:微信支付
  • 原文地址:https://www.cnblogs.com/qican/p/14245989.html
Copyright © 2020-2023  润新知