zoukankan      html  css  js  c++  java
  • 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。当然也可以通过

  • 相关阅读:
    Mysql将查出的一列数据合并为一行
    删除ArrayList的元素
    实体类Data时间限制
    java 生成随机数 自定义
    js 数组 删除第一个和最后一个
    Mybatis 返回值 返回Map的为空的值
    POI导出excel
    Objective-C 协议(接口)
    Objective-C 字典、可变字典
    Objective-C 数组、可变数组
  • 原文地址:https://www.cnblogs.com/qican/p/14245989.html
Copyright © 2011-2022 走看看